Python没有在我的while循环和if语句中读取所有比较运算符

问题描述 投票:2回答:1

我正在使用随机模块,因此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!")

相反,它完全覆盖了这一点并直接转向“不正确”的字符串。

我在这做错了什么?

python-3.x
1个回答
2
投票

input函数返回一个string,所以:

>>> "100" == 100
False

这就是为什么不满足条件的原因。为了修复你的代码你可以得到答案:

if int(answer) == win_number:
© www.soinside.com 2019 - 2024. All rights reserved.