Логические операторы
Введение в логические операторы
Логические операторы - это фундаментальные инструменты в Python для комбинирования и манипулирования булевыми значениями. Они позволяют вам создавать сложные условия и контролировать поток программы.
Три основных логических оператора
Python предоставляет три основных логических оператора:
Оператор |
Символ |
Описание |
AND |
and |
Возвращает True , если оба условия истинны |
OR |
or |
Возвращает True , если хотя бы одно условие истинно |
NOT |
not |
Инвертирует булево значение |
Оператор AND
Оператор and
требует, чтобы все условия были истинными:
## Примеры оператора AND
x = 5
y = 10
z = 15
print(x < y and y < z) ## True
print(x > y and y < z) ## False
Оператор OR
Оператор or
возвращает True
, если хотя бы одно условие истинно:
## Примеры оператора OR
is_weekend = False
is_holiday = True
print(is_weekend or is_holiday) ## True
print(False or False) ## False
Оператор NOT
Оператор not
инвертирует булево значение:
## Примеры оператора NOT
is_raining = False
print(not is_raining) ## True
is_sunny = True
print(not is_sunny) ## False
Сложные логические выражения
Вы можете комбинировать несколько логических операторов:
## Сложные логические выражения
age = 25
has_license = True
is_insured = False
can_drive = age >= 18 and has_license and not is_insured
print(can_drive) ## True
Короткое замыкание (Short-Circuit Evaluation)
Python использует короткое замыкание для логических операторов:
## Короткое замыкание
def is_valid_user(username):
return username and len(username) > 3
print(is_valid_user('')) ## False
print(is_valid_user('LabEx')) ## True
Приоритет операторов
graph TD
A[Logical Operators Precedence] --> B[NOT highest priority]
A --> C[AND medium priority]
A --> D[OR lowest priority]
Лучшие практики
- Используйте круглые скобки, чтобы прояснить сложные условия
- Избегайте чрезмерно сложных логических выражений
- Разбивайте сложные условия на более мелкие, читаемые части
Практический пример
## Реальное использование логических операторов
def can_register_for_course(age, has_prerequisites, is_enrolled):
return (age >= 18) and has_prerequisites and not is_enrolled
## Логика регистрации на курс LabEx
print(can_register_for_course(20, True, False)) ## True
print(can_register_for_course(17, True, False)) ## False
Освоив эти логические операторы, вы сможете создавать более сложную и точную условную логику в своих программах на Python.