看看这道题
(not 1)or(0 and 1)or(3 and 4)or(5 and 6)or(7 and 8 and 9)结果是4为什么呢 我觉得是因为:首先时从左到右看
(not 1)or (0 and 1)---
(not 1) 是false所以的真假只要看(0 and 1)
即先返回(0 and 1) ---
0 是false所以不需要判断(1) 即(0 and 1)是假
即返回false
接着是false or (3 and 4)
即只要看(3 and 4)---
因为3是真,所以的真假只要看4
即返回4
接着看4 or ((5 and 6)...(7 and 8 and 9))
因为4 是true所以后面的都不需要再判断了,即返回4
所以最后返回4 使用二进制的与或运算,先将()里的and进行与计算结果为0 or 0 or 0 or (0100) or 0,之后进行或运算,结果为0100,换算成十进制为4 符号的运算优先级:not >and> or
首先 not 1,就变为
0 or(0 and 1)or(3 and 4)or(5 and 6)or(7 and 8 and 9)
然后运行and,对于and,如果没有假值,返回的是最后一个真值,如果有假值,则返回的是第一个假值
0 or 0 or 4 or 6 or 9
然后运行or,对于or,如果没有真值,返回的是最后一个假值,如果有真值,则返回的是第一个真值
0 or 4 or 6 or 9
4 or 6 or 9
4 or 9
4
望采纳 这叫 "短路逻辑" 可以百度了解。
如:
>>> 3 and 4 # and 情况下3为真,则继续判断第二个数,第二个数为真则为真。在python中直接取第二个数
值4
>>> 3 or 4 # or 情况下3为真,or的原理是只要有一个为真那就是真。所以不用看第二个数了。取3
3
>>> 0 and 3 # and 情况下0为假,and的原理是必须是二个数为真才为真。所以第一个数已是假,不用判断第二个数了。直接取0
0 手机打的,希望你看得明白
真1 and 真2 --> 真2
真 and 假 --> 假
假 and 真 --> 假
假1 and 假2 --> 假1
真1 or 真2 -->真1
真 or 假 --> 真
假 or 真 --> 真
假1 or 假2 --> 假2
not 真 --> False
not 假 --> True
页:
[1]