Ряд операций представляют условные выражения. Все эти операции принимают два операнда и возвращают логическое значение, которое в Python представляет тип bool. Существует только два логических значения - 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 (логическое умножение) применяется к двум операндам:
x and y
Сначала оператор and оценивает выражение x, и если оно равно False, то возвращается его значение. Если оно равно True, то оценивается второй операнд - y и возвращается значение y.
age = 22 weight = 58 result = age > 21 and weight == 58 print(result) # True
В данном случае оператор and сравнивает результаты двух выражений: age > 21
weight == 58
. И если оба этих выражений
возвращают True, то оператор and также возвращает True (формально возвращается значение последнего операнда).
Но операндами оператора and необязательно выступают значения True и False. Это могут быть любые значения. Например:
result = 4 and "w" print(result) # w, так как 4 равно True, поэтому возвращается значение последнего операнда result = 0 and "w" print(result) # 0, так как 0 эквивалентно False
В данном случае число 0 и пустая строка "" расматриваются как False, все остальные числа и непустые строки эквивалентны True
or (логическое сложение) также применяется к двум операндам:
x or y
Сначала оператор or оценивает выражение x, и если оно равно True, то возвращается его значение. Если оно равно False, то оценивается второй операнд - y и возвращается значение y. Например
age = 22 isMarried = False result = age > 21 or isMarried print(result) # True, так как выражение age > 21 равно True
И также оператор or может применяться к любым значениям. Например:
result = 4 or "w" print(result) # 4, так как 4 эквивалентно True, поэтому возвращается значение первого операнда result = 0 or "w" print(result) # w, так как 0 эквивалентно False, поэтому возвращается значение последнего операнда
not (логическое отрицание)
Возвращает True, если выражение равно False
age = 22 isMarried = False print(not age > 21) # False print(not isMarried) # True print(not 4) # False print(not 0) # True
Оператор in возвращает True
если в некотором наборе значений есть определенное значение. Он имеет следующую форму:
значение in набор_значений
Например, строка представляет набор символов. И с помощью оператора in
мы можем проверить, есть ли в ней какая-нибудь подстрока:
message = "hello world!" hello = "hello" print(hello in message) # True - подстрока hello есть в строке "hello world!" gold = "gold" print(gold in message) # False - подстроки "gold" нет в строке "hello world!"
Если нам надо наоборот проверить, нет ли в наборе значений какого-либо значения, то мы може использовать модификацию оператора - not in.
Она возвращает True
, если в наборе значений НЕТ определенного значения:
message = "hello world!" hello = "hello" print(hello not in message) # False gold = "gold" print(gold not in message) # True