我的程序没有打印出我想要的消息

时间:2014-11-14 00:10:28

标签: python python-2.7 primes

我已经写了一个素数程序,我在打印出“无论是素数还是复合数”这个消息时遇到了麻烦,如下所示。我认为我的代码很好。我非常感谢对此问题的任何评论。提前谢谢

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()

2 个答案:

答案 0 :(得分:0)

您的变量s将始终等于永久等于0的{​​{1}},因此您的代码无法打印False

答案 1 :(得分:0)

就像Chantwaffle说的那样,你永远不会得到与0相等的东西,因为没有代码可以将它改为其他任何东西。此外,如果< = 2,您将永远不会进入此for循环,并且elif s始终为False,因为s在开头定义为0。重写代码,思考你想要实现什么以及应该做些什么来实现它。修复此代码的逻辑。