【问题标题】:Why am I not getting any output from my code?为什么我没有从我的代码中得到任何输出?
【发布时间】:2021-02-07 16:58:21
【问题描述】:

这是一个基于文本的 Python 实现,该算法使用 REPEAT...UNTIL 循环计算数字是否为素数。 每当我尝试运行它时,它都不会输出任何东西。 谁能告诉我这段代码有什么问题? 仅供参考,我是初学者。提前谢谢!

prime = True

number = int(input("Enter a number :  "))
counter  = 2

while True:
 
   modulus = number % counter
   if modulus == 0:
          prime == False
   counter = counter + 1
          
   #The loop for until statement
   if counter == number-1 or prime == False:
          break
          
if prime == True:
   print("Prime :  ", number)
else:
   print("Not prime :  ", number)

【问题讨论】:

  • 它确实会打印输出,但我认为您需要重新考虑算法。照原样,它会将 4 视为素数。关于你的第二个if statement

标签: python-3.x algorithm loops while-loop


【解决方案1】:
prime = True

number = int(input("Enter a number :  "))
 counter  = 2

 while True:
 
     modulus = number % counter
     if modulus == 0:
        prime == False
    counter = counter + 1
          
    #The loop for until statement
    if counter == number-1 or prime == False:
        break
          
if prime == True:
    print("Prime :  ", number)
else:
    print("Not prime :  ", number)`

正如您在第 10 行中看到的那样,prime = False not prime == False

【讨论】:

    【解决方案2】:

    不知道为什么不输出任何东西,但是prime == False这行是错的,应该是

    prime = False
    

    【讨论】:

      【解决方案3】:

      试试这个版本。

      主要问题是:

      1. 第一个 if 循环下的 prime == False 语句设置为布尔表达式,而不是变量赋值。
      2. while 循环设置为运行while prime == True。这样,循环将在检测到输入数字和素数指定之间的第一种矛盾情况时中断
      prime = True
      
      number = int(input("Enter a number :  "))
      counter  = 2
      
      while prime == True:
         modulus = number % counter
         if modulus == 0:
             prime = False
         counter = counter + 1
         if counter == number-1 or prime == False:
             break       
      if prime == True:
         print("Prime :  ", number)
      else:
         print("Not prime :  ", number)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-17
        • 1970-01-01
        相关资源
        最近更新 更多