新手求助:If/Elif语句未按预期工作
If/Elif语句未按预期执行的原因及解决方法
原因
if-elif是顺序判断的逻辑:只要前面的条件满足,就会执行对应的代码块,并且直接跳过后面所有的elif和else分支。你的代码里,当temperature=31时,temperature >=15这个条件先被判断,结果是成立的,所以直接执行了print("It's ok"),后面的elif temperature >=30根本不会被检查。
解决方法
把条件的顺序调换,先判断更严格、范围更小的条件(比如>=30),再判断范围更大的条件(>=15),这样就能确保符合更严格条件的情况被优先捕获。修改后的代码如下:
temperature = 31 if temperature >= 30: print("It's nice") elif temperature >= 15: print("It's ok") print ("done")
这样当temperature=31时,会先触发>=30的条件,执行对应的打印语句,符合你的预期。
内容的提问来源于stack exchange,提问作者Tumbi
相关产品推荐
相关产品推荐

