все Python 3Условный операторконструкция
and, or, not
логика
Логические операторы. and — оба истинны; or — хотя бы одно истинно; not — отрицание. Используют короткое замыкание (lazy evaluation).
Синтаксис
a and b | a or b | not a
Неочевидное: and и or возвращают не True/False, а сам операнд — "a or b" даёт a, если оно истинно, иначе b; отсюда идиома значения по умолчанию (name or "гость"). Чистый bool из этой тройки гарантирует только not.
Примеры
print(True and False) # → False
print(True or False) # → True
print(not True) # → False
age, has_id = 20, True
print(age >= 18 and has_id) # → True
x = 5
print(x < 0 or x > 3) # → True
print(1 < x < 10) # → True (цепочка = неявный and)
name = "" or "Гость"
print(name) # → Гость (короткое замыкание or)
val = None
safe = val and val.strip() # → None (не вызывает ошибку из-за and)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности