Ряд операций представляют условные выражения. Все эти операции принимают два операнда и возвращают логическое значение, которое в Python представляет тип boolean. Существует только два логических значения — True (выражение истинно) и False (выражение ложно).

Операции сравнения

Простейшие условные выражения представляют операции сравнения, которые сравнивают два значения. Python поддерживает следующие операции сравнения:

  • ==

    Возвращает True, если оба операнда равны. Иначе возвращает False.

  • !=

    Возвращает True, если оба операнда НЕ равны. Иначе возвращает False.

  • > (больше чем)

    Возвращает True, если первый операнд больше второго.

  • < (меньше чем)

    Возвращает True, если первый операнд меньше второго.

  • >= (больше или равно)

    Возвращает True, если первый операнд больше или равен второму.

  • <= (меньше или равно)

    Возвращает True, если первый операнд меньше или равен второму.

Примеры операций сравнения:

a = 5
b = 6
result = 5 == 6  # сохраняем результат операции в переменную
print(result)  # False - 5 не равно 6
print(a != b)  # True
print(a > b)  # False - 5 меньше 6
print(a < b)  # True
 
bool1 = True
bool2 = False
print(bool1 == bool2)  # False - bool1 не равно bool2

Операции сравнения могут сравнивать различные объекты — строки, числа, логические значения, однако оба операнда операции должны представлять один и тот же тип.

Логические операции

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

  • and (логическое умножение)

    Возвращает True, если оба выражения равны True

age = 22
weight = 58
result = age > 21 and weight == 58
print(result)  # True

В данном случае оператор and сравнивает результаты двух выражений: age > 21 weight == 58. И если оба этих выражений возвращают True, то оператор and также возвращает True. Причем в качестве одно из выражений необязательно выступает операция сравнения: это может быть другая логическая операция или просто переменная типа boolean, которая хранит True или False.

age = 22
weight = 58
isMarried = False
result = age > 21 and weight == 58 and isMarried
print(result)  # False, так как isMarried = False
  • or (логическое сложение)

Возвращает True, если хотя бы одно из выражений равно True

age = 22
isMarried = False
result = age > 21 or isMarried
print(result)  # True, так как выражение age > 21 равно True
  • not (логическое отрицание)

    Возвращает True, если выражение равно False

age = 22
isMarried = False
print(not age > 21)  # False
print(not isMarried)  # True

Если один из операндов оператора and возвращает False, то другой операнд уже не оценивается, так как оператор в любом случае возвратит False. Подобное поведение позволяет немного увеличить производительность, так как не приходится тратить ресурсы на оценку второго операнда.

Аналогично если один из операндов оператора or возвращает True, то второй операнд не оценивается, так как оператор в любом случае возвратит True.