python-3.x - 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!")
相反,它完全覆盖它并直接进入“不正确”的字符串。
我在这里做错了什么?
解决方案
input
函数返回 a string
,所以:
>>> "100" == 100
False
这就是不满足条件的原因。为了修复您的代码,您可以转换答案:
if int(answer) == win_number:
推荐阅读
- php - PHP Kirby 在 1 个片段中使用 2 个变量
- docker - 删除使用 docker-compose -f stack.yml 文件运行的容器
- rest - 为需要为每个请求保存数据的 REST API 的端点建模
- amazon-web-services - 配置 AWS API 网关时是否需要 NAT 网关?
- postgresql - 为什么我的 luminus 应用不能在 Heroku 上运行?
- reactjs - React 路由器在 URL 栏中不起作用,但它仍然适用于标签
- unicode - Ocaml:Unicode 字符串长度
- javascript - 循环遍历两个对象数组以循环匹配 id。然后根据自定义值返回一个新的自定义对象数组
- pytorch - PyTorch 训练的模型可以在 GPU 和 TPU 之间转移吗?
- sql-server - 创建一个 Powershell 脚本以禁用大多数 SQL Server 登录