[英]My python output is printing out twice and while I want it to print out once
[英]My program is not printing out the message I want
我已经写了一个素数程序,但在打印如下消息“既不是素数也不是复合数”时遇到麻烦。 我认为我的代码是可以的。 非常感谢您对此问题发表任何评论。 先感谢您
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()
您的变量s
将永远等于0
,永远等于False
,因此您的代码将不会打印"Neither a prime nor a composite"
就像Chantwaffle所说的那样,您永远不会使s等于0以外的任何值,因为没有代码将其更改为其他任何值。 另外,如果<= 2,则永远不会输入此for循环,而elif s始终为False,因为s开头定义为0。 考虑您要实现的目标以及应该做什么来重写该代码。 修复此代码的逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.