Операторы сравнения
Что можно делать с числами, кроме математических операций (сложения, умножения, вычитания и т.д.)? Числа можно сравнивать! Сравнение это очень понятная операция, ну очевидно же, что-то одно, больше или меньше чего-то другого. А что является результатом операции сравнения? Ведь в отличие скажем от того же сложения, где результатом является сумма, у сравнения нет нового значения. На самом деле результатом применения оператора сравнения к двум числам является значение Истина или Ложь. Давайте посмотрим это на примере оператора "Больше" >
. Это самый простой и понятный оператор, это Что-то одно Больше чего-то другого. А поскольку все в Python объект, то один объект Больше другого. Логично предположить что сравнивать можно, только одинаковые по типу объекты. Сравнивать "мух" с "котлетами" - нельзя! А вот сравнивать длину строки "муха" с длиной строки "котлета" - можно! Но давайте к чему-то более понятному - к числам. Давайте сравним 5 и 3. Применим оператор >
к паре чисел. И что мы получим, когда нажмем Enter
?
>>> 5 > 3
А получим мы ответ в виде True
, ту самую Истину. Т.е. Python используя формальную математическую логику вычислил результат операции сравнения 5 "Больше" 3
, и определил его как Истина. Ну а если к той же конструкции, мы применим оператор "Больше", но теперь поменяем местами наши цифры<
Результат будет следующим:
>>> 3 > 5
False
False, переводится на русский как Ложь. По сути это и есть два состояния, которые мы получаем применяя любой оператор сравнения к любым сравнимым объектам. Ложь
или Истина
. True
или False.
Кстати! Переменные, к которым применяются операции сравнения называются операндами.
Логично предположить, что если есть оператор сравнения "Больше", то есть и оператор сравнения "Меньше". И он действительно есть, а кроме того есть еще ряд операторов сравнения:
<
Меньше — условие верно, если первый операнд меньше второго.\
>
Больше — условие верно, если первый операнд больше второго.\
<=
Меньше или равно.\
>=
Больше или равно.\
==
Равенство. Условие верно, если два операнда равны.\
!=
Неравенство. Условие верно, если два операнда неравны.
Например, условие (x * x < 1000)
означает “значение x * x
меньше 1000”, а условие (2 * x != y)
означает “удвоенное значение переменной x
не равно значению переменной y
”.
Для того чтобы определить в каком порядке применять соответствующие операторы, например, в случае 2 * 2 + 2
существует таблица приоритета применения операторов, она очень похожа на привычные нам со школы правила приоритета математических операций. К примеру круглые скобки имеют самый большой приоритет и все что в них выполняется в первую очередь, потом идут операции возведения в степень, применения знака, умножения, затем сложения и вычитания, и в конце, с самым низшим приоритетом выполняются операции сравнения. Для практического применения важно помнить, что скобки имеют высший приоритет, и если вы сомневаетесь в том в каком порядке будут выполняться операции - просто расставьте скобки. Например, так2 * (2 + 2),
вы тогда операция сложения выполнится первой, а умножение будет уже применяться к результату сложения и финальный результат будет 8, а если бы скобки не стояли, то результат конечно же был бы 6.
Операторы сравнения в Питоне можно объединять в цепочки (в отличии от большинства других языков программирования, где для этого нужно использовать логические связки), например, 1 == 2 == 3
или 1 <= x <= 10
.