Подтвердить что ты не робот

Проверка равенства трех значений

Делает ли это то, что я думаю, что он делает? Мне кажется, что да. Я прошу быть уверенным.

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
4b9b3361

Ответ 1

Он эквивалентен, но не равен, поскольку обращения выполняются только один раз. Естественно, реляционные операторы цепей 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

Ответ 2

Да, однако, когда сравнения скованы, общее выражение оценивается один раз, когда используется, and оно оценивается дважды. В обоих случаях второе сравнение не оценивается, если первая ложна, пример из документов:

Сравнение может быть скопировано произвольно, например, x <y <= z эквивалентно x <y и y <= z, за исключением того, что y оценивается только один раз (но в обоих случаях z вообще не оценивается при x <y быть ложным).

Ответ 3

да, вы правы.

вы также можете сделать

5 > x > 1

или

1 < x < 5

Ответ 4

Да, в внутренних компонентах python операторы сравнения возвращаются, а true не являются ни ложными, но вместо этого возвращают объект "результат сравнения" (не помню имя класса, это было уже в прошлом), и этот объект предоставляет _lt_, _gt _, _eq _ и т.д. и стать "ответственными" за конечный результат (а "результат сравнения" отличает True или False в конце выражение). Что волшебство семантического управления python предоставляет вам:)

Ответ 5

Как утверждают другие, ответ - да. Однако: остерегайтесь добавления круглых скобок. Например:

>>> 1 == 2 == 0
False
>>> (1 == 2) == 0
True

Во втором случае (1 == 2) оценивается как False, а затем False == 0 значение True, поскольку Python позволяет сравнивать логические значения с целыми числами.

Точно так же:

>>> 0 == 0 == 1
False
>>> (0 == 0) == 1
True

Ответ 6

Вы можете использовать набор set для проверки равенства

len(set({a,b,c}) == 1

enter image description here