我正在使用随机模块,因此Python可以生成两个随机数给用户来测试他们的时间表,最多26个。我对这个代码唯一的问题是Python只服从!=操作数。
"elif answer != win_number:"
下的代码打印出如果答案不正确,用户会得到什么,但即使在答案正确的时候,Python仍会打印该代码,并跳过其他比较运算符。
import random
while True:
num1 = random.choice(range(0, 26))
num2 = random.choice(range(0, 26))
win_number = num1 * num2
answer = input("What is " + str(num1) + " * " + str(num2) + "?: ")
if answer == win_number:
print("Correct! " + str(win_number) + " was the right answer!")
elif answer == "?":
print(win_number)
elif answer != win_number:
print("Incorrect! " + str(win_number) + " is the correct answer!")
如果用户输入100,当Python询问10 * 10是什么时,我希望Python转到"if answer == win_number:"
选项并打印出来:
("Correct! " + str(win_number) + " was the right answer!")
相反,它完全覆盖了这一点并直接转向“不正确”的字符串。
我在这做错了什么?
input
函数返回一个string
,所以:
>>> "100" == 100
False
这就是为什么不满足条件的原因。为了修复你的代码你可以得到答案:
if int(answer) == win_number: