此表达式在Python中如何工作?
x=1, y=2, z=3
print(x and y and z)
结果为3
如果
x=3, y=2, z=1
print(x and y and z)
结果为1
任何人都可以解释吗?
答案 0 :(得分:0)
or
运算符返回第一个参数,它被认为是true,否则返回第二个。这两个值都不会转换为布尔值。
and
运算符将返回第一个参数(如果认为是错误的),否则返回第二个。再次没有转换。
如果a or b
是a
,则bool(a) == True
是b
如果a and b
是a
bool(a) == False
是b
编辑:
编辑了我的错误-我切换了and
和or
答案 1 :(得分:0)
在逻辑测试中,返回的值是最后评估的值。
因此,在第一个测试==> print(1 and 2 and 3)
中,我们得到的答案是3
,因为它是测试的最后一个真值。
在第二个测试==> print(3 and 2 and 1)
中,类似的答案是1
。