如何打印"纠正"用户在python 3.4.3版中正确回答了一些问题

时间:2015-05-07 21:10:25

标签: python

这是我当前的代码,它打印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")

3 个答案:

答案 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")