Python中if/else分支语句无法完整执行 仅触发else分支问题
问题根因
代码存在两处问题,直接导致条件判断始终进入else分支的是大小写匹配逻辑错误,另外还存在语法错误会导致程序无法正常启动:
- 首行对输入结果调用了
.upper()方法,所有用户输入都会被转换为全大写字符串,例如输入ready会得到'READY'、输入pass会得到'PASS',但后续if/elif分支的匹配值写的是全小写的'ready'和'pass',条件永远无法成立,自然每次都会执行else分支。 - 第一个print语句存在单引号嵌套错误:
print ('Okay, let's go!)外层用单引号标记字符串边界,字符串内部let's的单引号会被Python识别为字符串结束标记,且该行末尾缺失字符串闭合单引号,会直接触发语法报错。
修复后可运行代码
question = input('ready/pass').upper() if question == 'READY': print("Okay, let's go!") elif question == 'PASS': print('Sad to see you go...') quit() else: print("Sorry, I don't understand ")
可选调整方案
如果不想把判断值改成大写,直接删掉首行的.upper()调用即可,修改后首行代码为:question = input('ready/pass')
后续分支的判断值保持原来的小写'ready'、'pass'就能正常匹配。
内容的提问来源于stack exchange,提问作者GiGi Gem
相关产品推荐
相关产品推荐

