我是Python的初学者,我基本上都在尝试为自己制作一个基本的数学课程,并开始使用两位数的加法程序,每次都有随机问题,我甚至设法搞砸了。每当我输入正确的答案时,它每次都说不正确。这是代码:
import random
digit_one = random.randint(0,100)
digit_two = random.randint(0,100)
print "What is %s + %s?" % (digit_one, digit_two)
answer = digit_one + digit_two
userAnswer = raw_input()
if userAnswer == answer:
print "Well done that's correct!"
else:
print "That's incorrect!"
我正在使用2.7和内置的IDLE IDE。我有一种感觉,我应该使用循环,但我知道如果我希望它继续重新加载问题我将不得不使用它。我很感激任何帮助,谢谢。
答案 0 :(得分:3)
userAnswer = raw_input()
raw_input
返回一个字符串。您需要将其显式转换为int
,如此
userAnswer = int(raw_input())
因为您要将其与answer
进行比较,后者是int
。您可以通过打印这些变量的类型来确认这一点,例如
print type(answer), type(userAnswer)
答案 1 :(得分:3)
raw_input()
返回一个字符串(str
)。在条件设置中,您要比较str
是否等于answer
(int
)。
要解决此问题,您可以将输入转换为int
:
userAnswer = int(raw_input())
答案 2 :(得分:2)
raw_input
返回一个字符串。将其转换为int
以将其与数字进行比较:
>>> x = raw_input()
23
>>> x
'23'
>>> 23
23
>>> x == 23
False
>>> int(x)
23
>>> int(x) == 23
True
答案 3 :(得分:0)
您正在尝试将字符串与整数进行比较。尝试输入' userAnswer'作为一个整数,而不是一个字符串,如下所示:
userAnswer = int(raw_input())