python - Python:这里有什么错误?输出不断产生再试一次
问题描述
输出不断生成“再试一次”。这里有什么错误?
import random
x = int(input("guess a number between 0 and 10: \n"))
y = random.randint(0,10)
n = "try again"
while n == "try again":
if y == x:
print("congradulations\n")
break;
else:
input("try again\n")
解决方案
你循环只要n == "try again"
. 既然什么都没有改变n
,那就是永远。
你跳出循环 if y == x
。但是,由于没有任何变化,y
或者x
,如果第一次不是真的,它永远不会是真的,所以你永远不会跳出循环。
您可能想将结果存储在 中x
,就像您对第一个所做的那样input
:
n = "try again"
while n == "try again":
if y == x:
print("congradulations\n")
break;
else:
x = int(input("try again\n"))
现在,您将实际测试它们以查看它们是否是正确的答案,而不是忽略用户的重试。
但是,当我们这样做时,您可以将其简化很多。第一,n
永不改变,所以没用;你可以循环while True:
while True:
if y == x:
print("congradulations\n")
break;
else:
x = int(input("try again\n"))
或者您可以将y == x
检查移到while
循环中:
while y != x:
x = int(input("try again\n"))
print("congradulations\n")
推荐阅读
- gcc - 如何将 zstd 库静态链接到我的动态库?
- python - 将 ISO 8601 时间格式转换为 UNIX 时间戳(纪元)并再次返回而不会丢失小数秒?
- hyperledger-fabric - 是否可以更新或更改部署在 Hyperledger 网络中的智能合约(链码)
- kotlin - Is there any way to declare a scope extension to third party library kotlin class?
- java - 如何使用 Java POI 在 Excel 中将多种日期格式转换为一种标准格式
- php - Bigcommerce 自定义私有应用程序开发店面内容注入蓝图和模板
- python - CSV 排序?“TypeError:人口必须是一个序列或集合”。如何修复它。
- c# - 需要创建httpwebrequest以在c#中发送api post
- python - webdriver.Firefox()的参数是什么及其意义
- ios - 在 ARKit 的 3D Facemesh 中获取双眼的 3D 坐标