Слайд 1
🧩 Логические операторы
В этом уроке разберём, как объединять условия при помощи логических операторов and, or и not, а также узнаем их приоритеты выполнения.
🔹 Оператор and (логическое умножение)
Оператор and означает «и». Блок кода выполняется только если оба (или все) условия истинны.
age = int(input('Сколько вам лет?: '))
grade = int(input('В каком классе вы учитесь?: '))
if age >= 12 and grade >= 7:
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
В этом примере программа разрешает доступ только тем, кто старше 12 лет и учится не ниже 7 класса.
📘 Таблица истинности для and:
| a | b | a and b |
|---|---|---|
| False | False | False |
| False | True | False |
| True | False | False |
| True | True | True |
💡 Выражение с
and истинно, только если истинны все объединённые условия.
🔹 Оператор or (логическое сложение)
Оператор or означает «или».
Блок кода выполняется, если хотя бы одно из условий истинно.
city = input('В каком городе вы живете?: ')
if city == 'Москва' or city == 'Санкт-Петербург' or city == 'Екатеринбург':
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
📘 Таблица истинности для or:
| a | b | a or b |
|---|---|---|
| False | False | False |
| False | True | True |
| True | False | True |
| True | True | True |
💡 Для
or достаточно, чтобы одно условие было истинным.
🔹 Оператор not (логическое отрицание)
Оператор not инвертирует значение логического выражения — превращает True в False и наоборот.
age = int(input('Сколько вам лет?: '))
if not (age < 12):
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Этот код полностью эквивалентен следующему:
if age >= 12:
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
📘 Таблица истинности для not:
| a | not a |
|---|---|
| False | True |
| True | False |
💡 Всегда используйте скобки при применении
not к выражению — так код будет более читаемым.
⚙️ Приоритет логических операторов
Порядок выполнения операторов:
not— выполняется первымand— выполняется вторымor— выполняется последним
💡 Чтобы изменить порядок вычислений, используйте скобки
().
📘 Примечания
- 1. Частая ошибка — путаница
andиor.if x > 1 and x < 100: # ✅ верно if x > 1 or x < 100: # ❌ неверно — истина для любого числа! - 2. Всегда явно указывайте обе части условия:
if age >= 7 and age <= 9: # ✅ верно if age >= 7 and <= 9: # ❌ ошибка синтаксиса - 3. В Python можно проверять диапазон одной строкой:
if 7 <= age <= 9: - 4. Логические операторы вычисляются по «укороченной схеме» (short-circuit):
- При
and— если первое выражение ложно, второе не проверяется. - При
or— если первое выражение истинно, второе не проверяется.
5 > 100 and 10 > 0 # проверяется только 5 > 100 10 > 0 or 5 > 100 # проверяется только 10 > 0 - При