繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM