Skip to main content
 首页 » 编程设计

python之用户在 python 3.4.3 版中正确回答后如何打印 "correct"

2025年05月04日13fff_TT

这是我当前的代码,它打印 1 到 20 之间的两个随机数,并要求用户将它们相加。当答案被正确回答时,我希望它说正确,但我不确定如何做到这一点。

程序运行良好,但当用户输入正确答案时,什么也没有发生。

from random import randint 
 
 
def Add(x, y): 
 
    return x + y 
 
 
num1 = randint(1,20) 
num2 = randint(1,20) 
print(num1, "+", num2) 
answer = input("What is the answer to the question: ") 
 
if ("answer") is (num1 + num2): 
    print("Correct") 

请您参考如下方法:

您需要将input 转换为int,使用实际的variable answer 并且不要使用is为了测试相等性,应该使用 is 来检查identity,并且在您的情况下对于数字 > 256 将失败:

num1 = randint(1,20) 
num2 = randint(1,20) 
print(num1, "+", num2) 
answer = int(input("What is the answer to the question: ")) 
 
if  answer ==  num1 + num2: 
    print("Correct") 

为什么不应该使用:

In [35]: i = 256 
 
In [36]: j = 256 
 
In [37]:  i is j 
Out[37]: True 
 
In [38]: i = 257 
 
In [39]: j = 257 
 
In [40]:  i is j 
Out[40]: False 

对于 256,i is j 为 True 的唯一原因是因为 python 缓存从 -5 到 256 的小整数。