有关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年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!