求问not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9为什么等于4?
not 1 输出是 false呀:>>> not 1
False
(not 1)or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9):
false or 0输出就是错误了呀
为什么最后结果还能是4{:5_96:} 非0 就是真。
4 就是表示真咯。 >>>not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
>>>False or 0 or 4 or 6 or 9
>>>4
优先级:not > and > or and计算到最后一个数,都非零返回最右,
or从左计算到第一个不为0的数返回 因为
1or如果左端为真,那么结果就为左端值,并且右边不管了,比如2 or 8结果为2
2 or如果左端为False那么才看右端
3 and如果两边都为真那么取右边的值
你自己已经标好括号了,结果就是第三个or左端为真,所以取这个值
看到可爱的头像我决定回答一波。。。
你先看下图。。。
不懂再追问 两边都不是0的情况下
and 直接取后面的值 or 直接取前面的值
如果存在0的情况
and 直接取0 or 直接取非0
false是 0 。。
所以 0 or 0 or 4 or 6 or 9 第一个不为0的是 4 所以是4
0 or 0是 0
但 0 or 0 or 4就是 4了{:10_266:} ba21 发表于 2018-3-6 19:36
非0 就是真。
4 就是表示真咯。
谢谢回答,受益匪浅~ Charles未晞 发表于 2018-3-6 23:17
看到可爱的头像我决定回答一波。。。
你先看下图。。。
不懂再追问
谢谢回答,受益匪浅~{:5_91:} BngThea 发表于 2018-3-6 22:09
因为
1or如果左端为真,那么结果就为左端值,并且右边不管了,比如2 or 8结果为2
2 or如果左端为False ...
谢谢回答,受益匪浅~ Charles未晞 发表于 2018-3-6 23:17
看到可爱的头像我决定回答一波。。。
你先看下图。。。
不懂再追问
谢谢大神~~~~{:5_91:} 1 and如果左边为False那么取左边False,右边不执行 一假为假
2 and如果左边为真,那么执行右边,取右边的值 真真为真真假为假
3 or 如果左端为True,那么去左边True,右边不执行 一真为真
4 or如果左端为False,那么执行右边,取右边的值 假假为假 假真为真 sixchord 发表于 2018-3-7 00:47
两边都不是0的情况下
and 直接取后面的值 or 直接取前面的值
如果存在0的情况
回答详细易懂,谢谢! sixchord 发表于 2018-3-7 00:47
两边都不是0的情况下
and 直接取后面的值 or 直接取前面的值
如果存在0的情况
原来如此……2333 本帖最后由 yg飞许 于 2023-1-5 17:12 编辑
bool值是假的就几种情况,各各类型的空[] {} () ''、0、False、None
and or
真 and 真 = 真(右) 真 or 真 = 真(左)
真 and 假 = 假 真 or 假 = 真
假 and 真 = 假 假 or 真 = 真
假 and 假 = 假(左) 假 or 假 = 假(右)
True 和 False 分别用 1 和 0 来代替
4 or 6 ot 9 因为: 3 and 4 == 4,而 3 or 4 == 3
故为 4 短路逻辑
页:
[1]