Ряд операций представляют условные выражения. Все эти операции принимают два операнда и возвращают логическое значение, которое в 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 (age больше 21) weight == 58 (weight равно 58).
И если оба этих выражений возвращают True, то оператор and также возвращает True (формально возвращается значение последнего операнда).
And — означает «И» (в математической логике это называют конъюнкцией). Всё выражение считается истинным, только если истинен каждый операнд — каждое из составных выражений. Иными словами, and означает «и то, и другое».
Но операндами оператора and необязательно выступают значения True и False. Это могут быть любые значения. Например:
result = 4 and “w”
print(result) # w, так как 4 равно True, поэтому возвращается значение последнего операнда
result = 0 and “w”
print(result) # 0, так как 0 эквивалентно False
result = And — означает «И» (в математической логике это называют конъюнкцией). Всё выражение считается истинным, только если истинен каждый операнд — каждое из составных выражений. Иными словами, and означает «и то, и другое».
В данном случае число 0 и пустая строка “” расматриваются как False, все остальные числа и непустые строки эквивалентны True (как в нашем примере).
Разберём ещё раз пример:
result = 4 and “w”
print(result)
4 and “w” (4 и w) не 0 и не пустая строка, значит вывод True.
result = 0 and “w”
print(result
0 and “w” (0 и w) здесь в одном из двух значений имеется ноль, значит вывод False
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 вхождения/членства элемента в Python
x in s x not in s
Используйте оператор in всякий раз, когда вы хотите проверить, содержит ли итерируемый объект значение.
Оператор 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
Ещё примеры