[问题] if逻辑判断问题

楼主: yimean (温柔杀手)   2017-06-18 09:54:46
各位版上的大大早安
今天看到一段有趣的程式码如下
x=4
y=2
if not 1+1==y or x==4 and 7==8:
print("yes")
elif x>y:
print("no")
执行结果是"no"
我的问题在于if逻辑运算式的结果应该是True or Fales
而not在这边指的不是反逻辑运算子吗?
也就是说在我看起来if判断式是没有完成的因为没有对等的比较算子。
我是不是误会了些什么?
可否请高手指导,感谢。
作者: Django (Cython)   2017-06-18 10:32:00
not就是把False/True的值反转再来判断不过那一行没加括号看起来毛毛的
作者: LessonWang (橘白Cat)   2017-06-18 10:34:00
优先级 not>and>ornot 1+1==y 是Falsex==4 and 7==8 是FalseFalse or False 是False
楼主: yimean (温柔杀手)   2017-06-18 10:38:00
所以当if判断式后方的结果是False就不会执行下方的内容吗?
作者: LessonWang (橘白Cat)   2017-06-18 10:40:00
也就是 ((not 1+1==y) or (x==4 and 7==8))if 后面的运算式 只有True才会执行
楼主: yimean (温柔杀手)   2017-06-18 13:27:00
了解 感谢解惑
作者: fischcheng (布阿送)   2017-06-19 02:16:00
咦,elif冒号后面没indent当然会显示no啊

Links booklink

Contact Us: admin [ a t ] ucptt.com