如何让Python检查所有满足条件的分支并打印对应结果?代码优化咨询
解决方法:用独立
if替代elif实现多条件匹配输出 嘿,我懂你的需求啦!问题出在你用了elif(else if)——这个结构的逻辑是只要找到第一个满足条件的分支,就会跳过后面所有判断,所以输入6的时候只会触发第一个匹配的y >=5,后面哪怕条件为真也不会执行。
要实现「所有为真的条件都打印对应内容」,你只需要把每个判断都改成独立的if语句,让它们逐个检查条件、互不干扰。
修改后的代码如下:
y = int(input('Please enter a number from 1 - 100: ')) if y == 1: print('Y is 1.') if y >= 5: print('Y is high.') if y <= 5: print('Y is low.') if y != 7: print('Y is unlucky.') # 注意:下面这个条件永远为假(一个数不可能同时等于2和3),建议改成 y ==2 or y ==3 if y == 2 and y == 3: print('Y is 2 or 3.') if y >= 4 and y <= 7: print('Y is mid range.')
当你输入6时,程序会依次验证每个条件:
6 >=5→ 为真,打印Y is high.6 !=7→ 为真,打印Y is unlucky.6 >=4 and 6 <=7→ 为真,打印Y is mid range.
这样就完美实现了你要的效果~另外提一句,原来的y ==2 and y ==3这个条件永远不可能成立,如果你想判断y是2或者3,可以改成y ==2 or y ==3哦。
内容的提问来源于stack exchange,提问作者Toby Watson
相关产品推荐
相关产品推荐

