尝试理解AND语句在abs(numbers)
函数中是如何工作的。
调用print(abs(21-22 and 9-4 and 11-8))
无论最后一个表达式是什么,这都会给我提供。在这种情况下,它计算11-8,所以它打印3。为什么其他表达式不在输出中,也没有错误?
发布于 2020-06-02 03:10:18
表达式在abs
调用中这一事实不会改变它的解释方式:
>>> 21-22 and 9-4 and 11-8
3
这当然与以下内容相同:
>>> -1 and 5 and 3
3
and
评估每个操作数的“真实性”。如果其中任何一个为"falsey",则返回该值;否则返回最后一个值。
除0
之外的所有int
值都是“真实的”,因此只有当其中一个值为零时,您才能从and
of int
s中获得除最后一个值以外的值:
>>> -1 and 0 and 3
0
发布于 2020-06-02 03:07:22
and
是一个逻辑运算符,如果运算符的两个操作数都为真,它将返回True
。
我相信逗号在本例中完成了您所期望的操作:
print(abs(21-22),abs(9-4),abs(11-8))
https://stackoverflow.com/questions/62139144
复制相似问题