print(2==2==True)给出了结果:False
所以我的问题是它为什么不给出真实的答案呢?
其中as:
print(2==2 and True)给出了结果:True
有人能给出满意的答案吗?
发布于 2022-06-27 05:25:31
当你这样做时:
print(a == b == c)您正在检查a、b和c的值是否相同。由于2不等于True,所以语句为false,并且
print(2 == 2 == True)将是False。
然而,当你这样做时:
print(2 == 2 and True)您正在检查如果2 == 2和True都具有True的布尔值,那么您将打印出True,或者是False。因为2等于2,所以表达式2 == 2是True。因此,True and True是True,所以输出将是True。
如果你有进一步的问题或澄清,请告诉我!
发布于 2022-06-27 05:33:25
来自python文档:
比较: 比较可以任意链接,例如,
x < y <= z等价于x < y and y <= z,但y只计算一次(但在这两种情况下,当发现x < y为false时,z根本不计算)。 形式上,如果a,b,c,…,y,z是表达式,op1,op2,…,opN是比较运算符,那么a op1 b op2 c ... y opN z与a op1 b and b op2 c and ... y opN z等价,只不过每个表达式最多只能计算一次。
在第一个例子中,
print(2 == 2 == True) # This is in the form `a op b op c`等于2 == 2 and 2 == True。那就是True and False。
在第二个例子中,由于and不是比较运算符,所以不会有链接。
print(2 == 2 and True)等于2 == 2 and True,即True and True。
如果您想先强制计算表达式,然后将表达式放入()中。
print((2 == 2) == True)
print((2 == 2) and True)发布于 2022-06-27 05:55:21
在第一种情况下,2==2==True测试三个条件,如下所示。
2==2 => True2==True => FalseTrue==2 => False (不需要检查,因为如果前2满足了,那么这个也是正确的)在第二种情况下,`2==2和True‘您正在测试两个条件,类似于。
2==2 => TrueTrue and True => Truehttps://stackoverflow.com/questions/72767283
复制相似问题