我试图制作素数和合成数字游戏,即使您输入了错误的答案,它也始终会打印“正确答案”

时间:2019-05-19 10:15:43

标签: python

我正在尝试制作素数和合成数字游戏,在该游戏中您将数字识别为素数或合成数字,但始终会显示“正确答案”。

我尝试使用中断并将其他部分放在外部循环中,但仍然得到错误的语句。

import random
a = "composite number"
b = "prime number"
num = random.randint(2 , 10)
print(num)
guess = str(input("tell if it is composite number or prime number: "))
for i in range (2,num):
    if (num % i) == 0: 
        num == a
    else: 
        num == b
### I think this section is the wrong one. It only prints "correct answer" even if I intend to write the wrong answer

if guess == a:  
    print("correct answer")
elif guess == b:
    print("correct answer")
elif guess != b:
    print("wrong answer")
elif guess != a:
    print("wrong answer")

我希望它会显示正确的答案,无论是正确的答案还是错误的答案

1 个答案:

答案 0 :(得分:0)

您的代码中有一些错误。首先,在for循环中,您使用的是比较(==,而不是分配(=),但是无论如何,即使您是指后者,您也没有使用{{1 }}。最后的num也是错误的。

最后,您可以通过两种方式优化print循环:从for2的迭代,以及一旦发现sqrt(num)不是质数就中断。 / p>

num