Python入门问题:基础if语句中or逻辑判断失效排查
问题原因及修复方案
核心问题1:逻辑运算符使用错误
你的判断条件age != 10 or age != '11'逻辑完全错误。or表示只要任意一个条件为真,整个表达式就为真:
- 输入10时,
age != '11'为真,条件成立; - 输入11时,
age != 10为真,条件成立; - 输入其他值时,两个条件至少一个为真,条件还是成立。
所以无论输入什么,都会执行print('you are not 10 or 11. ')。
正确逻辑应该用and,表示年龄既不是10也不是11的时候才触发该分支:age != 10 and age != 11
核心问题2:类型不匹配
你把输入转成了float类型,但判断时却和字符串'11'比较。数字类型和字符串类型永远不相等,所以age != '11'这个条件永远为真,进一步导致整个if条件一直成立。
应该把'11'改成数字类型(比如11或者11.0),保持类型一致。
修正后的代码
age = float(input('enter age ')) if age != 10 and age != 11: print('you are not 10 or 11. ') else: print('you are 10 or 11')
如果只需要处理整数年龄,也可以用int转换:
age = int(input('enter age ')) if age != 10 and age != 11: print('you are not 10 or 11. ') else: print('you are 10 or 11')
内容的提问来源于stack exchange,提问作者Ben Newton
相关产品推荐
相关产品推荐

