这是我当前的代码,它打印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")
答案 0 :(得分:4)
您需要将input
转换为int,使用实际的变量 回答并且不要使用is来测试相等性,应该用于检查身份,并且数字>将失败;在你的情况下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
我是j的唯一原因是True为256是因为python 缓存小的整数从-5到256.
答案 1 :(得分:2)
你把答案放在引号中,这意味着程序期望字符串“answer”而不是变量。
答案 2 :(得分:0)
我修复了你的最后一行。我使用你的Add()函数只是因为你定义了它。
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 int(answer) == Add(num1 , num2):
print("Correct")
else:
print("Incorrect")