有关while循环的问题

这是一个验证用户输入是否有效的作业,在第 13 行输出 “是否想猜一个数字,请输入 Y 或 N”,然后如果用户输入的不是 Y 或 N 就输出 “无效输入,请输入 Y 或 N”,我用了 while 循环。如果是 Y 或 N,我用的 break 跳出循环,但是在运行的时候,我输入了 “x”,但是并没有输出 “无效输入,请输入 Y 或 N”,请问是怎么回事。
Python

Jason990420
最佳答案

keepGoing == 'Y' or 'N' 等同 (keepGoing == 'Y') or 'N', 永远为 True.

正确的方式如下

while True:

    keep_going = input("Enter 'Y' or 'N' to continue")
    if keep_going == 'Y' or keep_going == 'N':
        break

或者是

while True:

    keep_going = input("Enter 'Y' or 'N' to continue")
    if keep_going in ('Y', 'N'):
        break
1年前 评论
Jason990420 (作者) 1年前
andrewyang21 (楼主) 1年前
andrewyang21 (楼主) 1年前
讨论数量: 7
Jason990420

keepGoing == 'Y' or 'N' 等同 (keepGoing == 'Y') or 'N', 永远为 True.

正确的方式如下

while True:

    keep_going = input("Enter 'Y' or 'N' to continue")
    if keep_going == 'Y' or keep_going == 'N':
        break

或者是

while True:

    keep_going = input("Enter 'Y' or 'N' to continue")
    if keep_going in ('Y', 'N'):
        break
1年前 评论
Jason990420 (作者) 1年前
andrewyang21 (楼主) 1年前
andrewyang21 (楼主) 1年前

file

file 个人感觉这里没必要 while true , 第一次 while 判断就该判断出来

1年前 评论
andrewyang21 (楼主) 1年前
Quit_Burt (作者) 1年前