Python逻辑运算符and?

小弟初来Python,求一个小小的问答,我明白and是有假取假or是有真取真,像这类数字与数字对比怎么分真假真取,print(8 or 3 and 4 or 2 and 0 or 9 and 7).

and和or表达式的值是第一个能决定整个表达式是否成立的那个操作数的值。举例:
3 and 4:第一个操作数3为真,但不能保证and成立,还要看第二个操作数4;4也为真,此时可以确定and一定成立,因此这个表达式的值是4。
'hello' and [] and 'world':第一个操作数'hello'为真,但不能保证and成立;第二个操作数[]为假,此时可以确定and一定不成立,因此这个表达式的值是[]。
'a' or 'b' or 'c' or 'd':第一个操作数a为真,此时可以确定or一定成立,因此这个表达式的值是'a'。
1 and 2 or 3 and 4:and的优先级高于or,因此先求左边的1 and 2,这个子表达式的值是2,2为真,可以确定or一定成立,因此整个表达式的值是2。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-25
在python中,逻辑运算符的优先级是逻辑运算符: or< and <not,此外,and取后而or取前,所以根据运算顺序可以得知print(8 or 3 and 4 or 2 and 0 or 9 and 7).即为print( 8 or 4 or 0 or 7),得到结果为8.
对于数字反复运用逻辑运算符一般是没有意义的。望采纳
第2个回答  2019-12-24
数字与数字间or或and,or取前者,and取后者。
and和or相比and优先。所以这里的顺序是
3 and 4 = 4
2 and 0 = 0
9 and 7 = 7
8 or 4 = 8
8 or 0 = 8
8 or 7 = 8
最后结果为8。
希望对你有所帮助,谢谢!
相似回答