Python多分支if elif语句中带小于号的第二分支不生效问题
Python elif分支无法触发问题排查
核心原因
你的代码存在两个核心错误:
- 拆分出了两个独立的if判断组,而非连贯的多分支判断:
第一个if temperature > 30是完全独立的判断,执行结束后直接进入后续代码。后续的if temperature < 15是第二个独立判断组的起点,它绑定的所有elif、else仅在该if条件不成立时才会触发。 - 同方向判断顺序错误:
低温判断中你把范围更大的temperature <15放在了前面,只要温度小于15就会命中该分支,直接跳过所有后续同组的elif,哪怕温度同时满足<10也不会触发对应分支。
你传入的测试值temperature=3满足temperature <15的条件,执行完对应打印逻辑后整个第二组判断直接结束,因此elif temperature <10分支永远不会被触发。此外你代码中的elif temperature >39分支也存在逻辑错误:温度大于39时会先命中第一个独立判断if temperature >30,不会进入第二组判断的对应分支。
修正方案
调整为同一组连贯判断,同时同方向判断将范围更小的条件前置:
temperature = 3 if temperature > 39: print("Its really hot so stay indoors") elif temperature > 30: print("Its a hot day, drink plenty of water") elif temperature < 10: print("Don't bother getting out of bed") elif temperature < 15: print("No need to drink any water today") else: print("Its a lovely day today")
内容的提问来源于stack exchange,提问作者Destria Black
相关产品推荐
相关产品推荐

