Python入门疑问:x=9时为何第二组if后的else语句仍会执行?
问题原因解释
你代码里的两个if是彼此完全独立的判断组,不存在关联关系:
- 第一个
if x < 10:是单独的判断逻辑,当x=9满足条件时,执行print("Too Small")后该分支就结束了,不会影响后续代码的执行。 - 后续的
if x > 10:和对应的else属于另一组独立的判断,和第一个if没有绑定。当x=9时不满足x>10的条件,自然会执行该组对应的else分支,输出Just Right。
你理解的偏差在于:只有同一组的多分支判断结构才会触发「满足一个分支就跳过剩余分支」的逻辑,你需要把代码改成if...elif...else的串联结构才能实现你预期的效果:
x = 9 if x < 10: print("Too Small") elif x > 10: print("Too Large") else: print("Just Right") print("All Done")
修改后三个分支属于同一判断组,只要有一个条件命中,剩余的elif和else都会直接跳过,x=9时只会输出Too Small和All Done,符合你的预期。
内容的提问来源于stack exchange,提问作者Illy
相关产品推荐
相关产品推荐

