Операция равенства является
транзитивной. Это означает, что если
a == b и
b == c, то из этого следует, что
a == c. Именно поэтому предыдущий код, проверяющий равенство трех переменных, работает, как полагается.
Из курса математики вам могут быть знакомы другие примеры транзитивных операций:
- Отношение порядка: если a>b и b>c, то a>c;
- Параллельность прямых: если a∥b и b ∥c, то a∥c;
- Делимость: если a делится на b и b делится на c, то a делится на c.
Наглядно транзитивность отношения порядка можно понять на таком примере: если сосед слева старше вас (
a>
b), а вы старше соседа справа (
b>
c), то сосед слева точно старше соседа справа (
a>
c).
Операция неравенства (
!=), в отличие от операции равенства (
==), является
нетранзитивной. То есть из того, что
a != b и
b != c вовсе не следует, что
a != c. Действительно, если вас зовут не так, как соседа слева и не так, как соседа справа, то нет гарантии, что у обоих соседей не окажутся одинаковые имена.
Таким образом, следующий код вовсе
не проверяет тот факт, что все три переменные различны:
if a != b != c: print(
'числа не равны')else: print(
'числа равны')Код, проверяющий, что значения трех переменных различны, мы научимся писать немного позже.