首页 > 解决方案 > Python没有读取我的while循环和if语句中的所有比较运算符

问题描述

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

如果用户在 Python 询问 10 * 10 是什么时输入 100,我希望 Python 会转到该"if answer == win_number:"选项并打印出:

("Correct! " + str(win_number) + " was the right answer!")

相反,它完全覆盖它并直接进入“不正确”的字符串。

我在这里做错了什么?

标签: python-3.x

解决方案


input函数返回 a string,所以:

>>> "100" == 100
False

这就是不满足条件的原因。为了修复您的代码,您可以转换答案:

if int(answer) == win_number:

推荐阅读