python - 为什么我在使用“while True”时会陷入不断循环?
问题描述
我试过写'y'和'n',但我被困在这个不断的循环中。我不明白为什么。
while True:
try:
answer = int(input("Continue? y/n: "))
except ValueError:
print("Please write y or n.")
continue
else:
break
if answer == 'y':
print("Yes")
if answer == 'n':
print("No")
解决方案
正如评论中所指出的 - 你想要一个字符而不是整数输入。将任何非数字转换为 int 将导致 ValueError 并重新开始。
while True:
answer = input("Continue? y/n: ").lower()
if answer in ("y","n"):
break
print("Please write y or n.")
if answer == 'y':
print("Yes")
elif answer == 'n':
print("No")
应该这样做。
推荐阅读
- php - 使用 LIMIT 从数据库中选择数据
- python - 创建 Pyinstaller 包后无法通过调用 Chrome 驱动程序来运行 Python Unittest Selenium 脚本
- python-3.x - 为什么在 python3.7.4 中运行 grpc demo 时会出现 AttributeError
- java - 如何在 Java 中使用 LIKE % 编写正确的语句
- hyperlink - 是否有一种通用的方法可以在不产生“点击”的情况下缩短 URL?
- c# - 即使我安装了 MVC 并且有 using 语句,也会出现错误“找不到类型或命名空间名称 'SelectList'”
- excel - 转置列并删除重复项
- php - Output multidimentional array
- angular - Push to observable in angular
- python - DataFrame need help to organise columns and rows of a DF