尝试理解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
3and评估每个操作数的“真实性”。如果其中任何一个为"falsey",则返回该值;否则返回最后一个值。
除0之外的所有int值都是“真实的”,因此只有当其中一个值为零时,您才能从and of ints中获得除最后一个值以外的值:
>>> -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
复制相似问题