Python循环卡在错误环节:输入Yes后无法执行对应命令
问题原因及修复方案
核心故障点:大小写不匹配
你把输入内容转成了全大写(FA=FA.upper()),但判断输入合法性的条件里,用的是首字母大写的('Yes', 'No')。转大写后的'YES'或'NO'根本不在这个元组里,所以不管输入什么,都会一直卡在错误输入的循环里。具体修复步骤
- 把合法性判断的字符串改成全大写,和转大写后的输入匹配:
while FA not in ('YES', 'NO'): - 后续的循环判断也要对应改成全大写:
while FA == 'YES':
或者换一种思路,统一转成小写后判断,代码更简洁:
FA = input('Are there assignments to grade? Yes/No:').lower() while FA not in ('yes', 'no'): print('Please enter a valid input: either Yes or No') FA = input('Are there any assignments to grade? Yes/No:').lower() # 后续判断用 FA == 'yes'- 把合法性判断的字符串改成全大写,和转大写后的输入匹配:
额外小问题
代码里第二个输入提示的单词拼错了:assingments应该是assignments,建议修正避免歧义。
内容的提问来源于stack exchange,提问作者Aidan Leung
相关产品推荐
相关产品推荐

