Хелпикс

Главная

Контакты

Случайная статья





Цепочки сравнений. Транзитивность



Цепочки сравнений

Операторы сравнения в Python можно объединять в цепочки (в отличии от большинства других языков программирования, где для этого нужно использовать логические связки), например, a == b == c или 1 < = x < = 10. Следующий код проверяет, находится ли значение переменной age в диапазоне от 3 до 6:

age = int(input())

if 3 < = age < = 6:

print('Вы ребёнок')

Код, проверяющий равенство трех переменных, может выглядеть так:

if a == b == c:

print('числа равны')

else:

print('числа не равны')

Транзитивность

Операция равенства является транзитивной. Это означает, что если a == b и b == c, то из этого следует, что a == c. Именно поэтому предыдущий код, проверяющий равенство трёх переменных, работает как полагается.

Из курса математики вам могут быть знакомы другие примеры транзитивных операций:

· Отношение порядка: если a > ba> b и b > cb> c, то a > ca> c;

· Параллельность прямых: если a \parallel bab и b \parallel cbc, то a \parallel cac;

· Делимость: если aa делится на bb и bb делится на cc, то aa делится на cc.

Наглядно транзитивность отношения порядка можно понять на таком примере: если сосед слева старше вас (a > b)(a> b), а вы старше соседа справа (b > c)(b> c), то сосед слева точно старше соседа справа (a > c)(a> c).

Операция неравенства (! =), в отличие от операции равенства (==), является нетранзитивной. То есть из того, что a! = b и b! = c, вовсе не следует, что a! = c. Действительно, если вас зовут не так, как соседа слева и не так, как соседа справа, то нет гарантии, что у обоих соседей не окажутся одинаковые имена.

Таким образом, следующий код вовсе не проверяет тот факт, что все три переменные различны:

if a! = b! = c:

print('числа не равны')

else:

print('числа равны')

Код, проверяющий, что значения трёх переменных различны, мы научимся писать немного позже.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.