我已经写了一个素数程序,我在打印出“无论是素数还是复合数”这个消息时遇到了麻烦,如下所示。我认为我的代码很好。我非常感谢对此问题的任何评论。提前谢谢
def prime_number():
a = input("Please enter a number:")
x = True
s = 0
for i in range(2, a):
while x:
if a%i == 0:
x = False
elif s:
print s,"Neither a prime nor a composite"
else:
x = True
if x:
print a,"is a prime number."
elif s:
print s,"Neither a prime nor a composite"
else:
print a,"is not a prime number."
prime_number()
答案 0 :(得分:0)
您的变量s
将始终等于永久等于0
的{{1}},因此您的代码无法打印False
答案 1 :(得分:0)
就像Chantwaffle说的那样,你永远不会得到与0相等的东西,因为没有代码可以将它改为其他任何东西。此外,如果< = 2,您将永远不会进入此for循环,并且elif s始终为False,因为s在开头定义为0。重写代码,思考你想要实现什么以及应该做些什么来实现它。修复此代码的逻辑。