这是否符合我的想法?在我看来是的。我要求确定。
if n[i] == n[i+1] == n[i+2]:
return True
这些是否相等?
if n[i] == n[i+1] and n[i+1] == n[i+2]:
return True
答案 0 :(得分:40)
等效但不等于,因为访问只执行一次。 Python自然地将关系运算符链接起来(包括in
和is
)。
显示细微差别的最简单方法:
>>> print(1) == print(2) == print(3)
1
2
3
True
>>> print(1) == print(2) and print(2) == print(3)
1
2
2
3
True
答案 1 :(得分:11)
是的,但是,当比较被链接时,公共表达式被评估一次,当使用and
时,它被评估两次。在这两种情况下,如果第一个比较为假,则不评估第二个比较,例如docs:
比较可以任意链接,例如,x <1。 y&lt; = z是等价的 到x&lt; y和y&lt; = z,除了y仅被评估一次(但在两者中) 当x
答案 2 :(得分:3)
是的,你是对的....
你也可以
5 > x > 1
或
1 < x < 5
答案 3 :(得分:2)
是的,在python的内部,比较运算符返回也不是true也不是false,它们反而返回'比较结果'对象(不能记住类名,它过去相当),而且这个对象提供了 _ lt _ , _ gt _ , _ eq _ 等等方法并对最终结果“负责”(并且'比较结果'在语句结束时转换为True或False)。这是python为你提供的语义控制的魔力:)
答案 4 :(得分:2)
正如其他人回答的那样,答案是肯定的。但是:请注意不要添加括号。例如:
>>> 1 == 2 == 0
False
>>> (1 == 2) == 0
True
在第二种情况下,由于Python允许将布尔值与整数进行比较,因此(1 == 2)
的计算结果为False
,然后False == 0
的计算结果为True
。
类似:
>>> 0 == 0 == 1
False
>>> (0 == 0) == 1
True
答案 5 :(得分:1)
似乎您也可以将==与!=链接起来
OkVHOjo7WlhRTFsyMS5xMz5zMDE6IDE2OjI1OjE2XQpbVF2bUl2bSV2bT22bSF2bSl2bUl2bSV2bT22bVF2bUl2bTV2bTl2bQl2bT22bVF2bSV2bUl2bQl2bTl2bUl2bVF2bT22bSV2bQl2bTl2bT22bUl2bVF2bSV2bQl2bTl2bUl2bVF2bSV2bT22bSl2bTl2bQl2bVF2bUl2bSV2bT22bQl2bSl2bUl2bVF2bSV2bQl2bSl2bUl2bVF2bT22bSV2bQl2bSl2bTV2bR22bSV2bVF2bVV2bRF2bTF2bSF2bR22bQl2bVV2bUl2bSV2bRl2bT22bTF2bRF2bS22bR22bSF2bRl2bRF2bR22bSF2bRF2bUl2bS22bTF2bR22bSF2bQl2bRl2bRF2bWF2bSl2bTF2bR22bSF2bS22bTF2bSl2bSF2bQl2bUl2bT22bVV2bSF2bSl2bQl2bTl2bSV2bUl2bRV2bVF2bQl2bSF2bSl2bVl2bTl2bVV2bSV2bRl2bR22bS22bR22bQl2bSF2bRl2bSV2bVV2bR22bSF2bRl2bSV2bVV2bVF2bTF2bRF2bSF2bRl2bVV2bR22bQl2bTl2bSl2bRl2bSV2bVV2bRF2bSF2bVF2bUl2bVV2bSl2bTF2bUl2bRF2bR22bSF2bSl2bVF2bUl2bRF2bT22bTF2bSF2bVV2bSl2bRF2bUl2bVF2bSV2bT22bVV2bSF2bUl2bRF2bVF2bVV2bSV2bSF2bSl2bUl2bVF2bVV2bSV2bRF2bSl2bSF2bSl2bVF2bVV2bSV2bUl2bRF2bSF2bTF2bVV2bVF2bUl2bRF2bSF2bVF2bRF2bVV2bUl2bSV2bSF2bVF2bRF2bUl2bSV2bSF2bVF2bSF2bRF1KOlpBZXJQTGdmc3RlY4J6cHQ3OTY=
答案 6 :(得分:0)