Часто в жизни нам приходится принимать решения на основе нескольких факторов сразу. Например, "если на улице солнечно И у меня есть свободное время, я пойду гулять". Программирование — не исключение. В этом модуле мы разберемся со сложными логическими условиями. С помощью логических операторов `and` (И), `or` (ИЛИ) и `not` (НЕ), мы научимся создавать гибкие и точные проверки. Вы сможете писать код, который проверяет, что число находится в нужном диапазоне, что пользователь имеет один из нескольких статусов, или комбинировать множество условий для принятия сложных решений. Этот тренажер поможет вам отточить навыки использования этих операторов на практических задачах.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Конструкция if.
- Конструкция if-else.
- Конструкция elif.
- Вложенные условия.
- Сложные логические условия.
- Match-case (Python 3.10+).
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Проверка диапазона с помощью `and`
Дополните код, чтобы он проверял, что возраст `age` находится в рабочем диапазоне, то есть от 18 до 65 лет включительно. Для этого нужно, чтобы ОБА условия выполнялись одновременно.
age = 25
# Проверяем, что возраст больше или равен 18 И меньше или равен 65
if age >= 18 input1S age <= 65:
print("Рабочий возраст")
else:
print("Нерабочий возраст")Проверка одного из вариантов с `or`
Завершите условие, которое предоставляет доступ, если у пользователя роль 'admin' ИЛИ 'moderator'. В этом случае достаточно, чтобы выполнялось хотя бы одно из условий.
role = "admin"
if role == "admin" input1S role == "moderator":
print("Доступ с расширенными правами")
else:
print("Обычный доступ")Сопоставьте операторы и их назначение
В Python есть три основных логических оператора. Сопоставьте каждый оператор из правой колонки с его правильным описанием из левой колонки.
ornotandРезультат условия с `and`
Проанализируйте код. Для получения специальной скидки нужно иметь и купон, и карту лояльности. Выполнится ли это условие для данного пользователя? Выберите, что выведет программа.
has_coupon = True
has_loyalty_card = False
if has_coupon and has_loyalty_card:
print("Применена специальная скидка")
else:
print("Стандартная цена")Результат условия с `or` и `not`
Теперь задача немного сложнее. Пользователь может войти, если он не забанен ИЛИ является администратором. Проанализируйте переменные и определите, что выведет код.
is_banned = False
is_admin = False
if not is_banned or is_admin:
print("Вход разрешен")
else:
print("Вход запрещен")Исправьте логический оператор
В этом коде вместо логического оператора 'И' используется побитовый оператор. Хотя код может выполниться без ошибки, это семантически неверно и может привести к неожиданным результатам. Замените символ `&` на правильное ключевое слово.
is_authenticated = Truehas_permission = True if is_authenticated & has_permission: print("Доступ предоставлен")Приоритет операций
Соберите условие для отправки уведомления. Уведомление отправляется платному пользователю, если у него включены email-уведомления ИЛИ push-уведомления. Расставьте операторы и скобки из банка, чтобы логика была верной.
is_paid_user = True
email_notify = False
push_notify = True
if is_paid_user input1S input2S email_notify input3S push_notify input4S:
print("Уведомление отправлено")Предскажите результат сложного условия
Внимательно проанализируйте этот код, который решает, предоставлять ли кредит. Проследите за вычислением сложного логического выражения и впишите в поле ответа, что будет выведено на экран.
age = 25
has_job = True
is_student = False
credit_score = 750
if age > 21 and (has_job or is_student) and credit_score > 600:
print("Одобрено")
else:
print("Отказано")Истина или Ложь?
Каждое логическое выражение в Python в конечном счете сводится к одному из двух значений: `True` или `False`. Распределите предложенные выражения по двум категориям в зависимости от их итогового результата.
5 > 3 and 1 == 1not (10 < 20)"a" == "a" or 5 < 210 != 10 or 1 == 2not False and TrueTrue and (False or False)