首页 > 解决方案 > 为什么我在使用“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")

标签: pythonpython-3.x

解决方案


正如评论中所指出的 - 你想要一个字符而不是整数输入。将任何非数字转换为 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")

应该这样做。


推荐阅读