Python带两个判断条件的if语句不生效问题求助
问题根因
- 代码的条件判断顺序逻辑错误:第一个
if分支直接匹配「开门」输入,无论用户是否持有钥匙,只要输入开门指令就会触发该分支,打印门已锁的提示后直接执行continue跳过后续所有校验,带钥匙判断的开门分支永远不会被运行。
修复方案
调整判断优先级,将同时校验「持有钥匙+输入开门」的分支放到最前,修正后的可运行代码如下:
key = 0 while True: print('你站在一扇带邮箱的门外。') user_input = input('> ') # 优先校验带钥匙的开门逻辑 if user_input.lower() == '开门' and key == 1: print('你打开门走了进去。') break if user_input.lower() == '开门': print('门是锁着的。') continue if user_input.lower() == '打开邮箱': print('你找到了一把钥匙!') key = 1 continue else: print('未知命令,请重试') continue
- 调整后程序会优先判断用户是否满足「有钥匙+要开门」的条件,不满足该条件才会走无钥匙开门的提示分支,完全匹配预设的交互逻辑。
内容的提问来源于stack exchange,提问作者needhelpwithcoding
相关产品推荐
相关产品推荐

