Логические операторы

Слайд 1

🧩 Логические операторы

В этом уроке разберём, как объединять условия при помощи логических операторов and, or и not, а также узнаем их приоритеты выполнения.

🔹 Оператор and (логическое умножение)

Оператор and означает «и». Блок кода выполняется только если оба (или все) условия истинны.

age = int(input('Сколько вам лет?: '))
grade = int(input('В каком классе вы учитесь?: '))

if age >= 12 and grade >= 7:
    print('Доступ разрешен.')
else:
    print('Доступ запрещен.')

В этом примере программа разрешает доступ только тем, кто старше 12 лет и учится не ниже 7 класса.

📘 Таблица истинности для and:

aba and b
FalseFalseFalse
FalseTrueFalse
TrueFalseFalse
TrueTrueTrue
💡 Выражение с and истинно, только если истинны все объединённые условия.

🔹 Оператор or (логическое сложение)

Оператор or означает «или». Блок кода выполняется, если хотя бы одно из условий истинно.

city = input('В каком городе вы живете?: ')
if city == 'Москва' or city == 'Санкт-Петербург' or city == 'Екатеринбург':
    print('Доступ разрешен.')
else:
    print('Доступ запрещен.')

📘 Таблица истинности для or:

aba or b
FalseFalseFalse
FalseTrueTrue
TrueFalseTrue
TrueTrueTrue
💡 Для or достаточно, чтобы одно условие было истинным.

🔹 Оператор not (логическое отрицание)

Оператор not инвертирует значение логического выражения — превращает True в False и наоборот.

age = int(input('Сколько вам лет?: '))

if not (age < 12):
    print('Доступ разрешен.')
else:
    print('Доступ запрещен.')

Этот код полностью эквивалентен следующему:

if age >= 12:
    print('Доступ разрешен.')
else:
    print('Доступ запрещен.')

📘 Таблица истинности для not:

anot a
FalseTrue
TrueFalse
💡 Всегда используйте скобки при применении not к выражению — так код будет более читаемым.

⚙️ Приоритет логических операторов

Порядок выполнения операторов:

  1. not — выполняется первым
  2. and — выполняется вторым
  3. 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