В этом модуле мы погружаемся в мир логики Python. Вы познакомитесь с булевыми значениями — фундаментом для принятия решений в ваших программах. Это всего два слова, `True` и `False`, но они управляют всем: от простого `if` до сложных циклов и алгоритмов.
Мы начнем с самых основ: как создать булеву переменную. Затем научимся получать `True` или `False` с помощью операторов сравнения (`==`, `!=`, `<`, `>`). После этого мы перейдем к настоящей магии — логическим операторам `and`, `or` и `not`, которые позволяют комбинировать условия. Вы разберетесь, что такое "истинность" (Truthiness) и почему не только `True` может быть правдой в условиях. Задания построены от простого к сложному, чтобы вы шаг за шагом стали мастером логики в Python.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 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: Продвинутые возможности
Основы: True и False
В Python есть два специальных значения для представления истины и лжи. Заполните проpuски, чтобы присвоить переменным `is_correct` и `is_failed` соответствующие булевы значения.
# Переменная для истинного значения
is_correct = input1S
# Переменная для ложного значения
is_failed = input2S
print(f"Правильно: {is_correct}, Ошибка: {is_failed}")Результат сравнения
Операторы сравнения, такие как `>` (больше чем), всегда возвращают булево значение. Проанализируйте выражение и определите, какой результат — `True` или `False` — оно вернет.
# Что вернет это сравнение?
result = 5 > 3
print(result)Проверка на равенство
Оператор `==` используется для проверки, равны ли два значения. Что выведет на экран код, который сравнивает два одинаковых числа? Введите результат: `True` или `False`.
value_a = 10
value_b = 10
print(value_a == value_b)Исправьте ошибку в ключевом слове
В Python булевы значения имеют строгий синтаксис. В данном коде допущена распространенная ошибка, из-за которой программа упадет с `NameError`. Найдите и исправьте ее.
# Устанавливаем флаг активностиis_active = trueif is_active: print("Пользователь активен")Сопоставьте операторы сравнения
Для создания булевых выражений используются операторы сравнения. Сопоставьте каждый оператор из правой колонки с его правильным описанием в левой.
!=<==>=Логический оператор not
Оператор `not` инвертирует (меняет на противоположное) булево значение. Что выведет на экран этот код?
is_sunny = True
print(not is_sunny)Логический оператор and
Оператор `and` (логическое "И") возвращает `True` только в том случае, если оба условия истинны. Какой результат вернет данное выражение? Введите `True` или `False`.
# Проверка прав доступа
has_key = True
has_permission = False
print(has_key and has_permission)Сложные условия доступа
Заполните пропуски, используя логические операторы `and` и `or`, чтобы реализовать следующую логику: доступ разрешен, если (пользователь старше 18 лет И у него есть премиум-статус) ИЛИ если он администратор.
age = 20
is_admin = False
is_premium = True
# Доступ разрешен администраторам или взрослым пользователям с премиум-статусом
if (age > 18 input1S is_premium) input2S is_admin:
print("Доступ разрешен")
else:
print("Доступ запрещен")Истина или ложь? (Truthiness)
В Python не только `True` и `False` имеют булевый смысл. Многие другие значения тоже могут быть интерпретированы как истинные или ложные в логическом контексте (например, в `if`). Распределите значения по двум категориям: те, что считаются истинными (Truth-like), и те, что считаются ложными (Falsy).
01"""hello"[][1, 2]None-10Соберите проверку билета
Соберите из фрагментов код, который проверяет, действителен ли билет. Билет действитеlen, если он не просрочен (`is_expired` равно `False`) и еще не был использован (`is_used` равно `False`). Одна из строк является лишней и не должна использоваться.
is_expired = False print("Билет недействителен")if not is_expired and not is_used:is_used = Falseelse: print("Билет действителен")if is_expired or is_used:Приоритет логических операторов
У логических операторов есть приоритет выполнения: сначала выполняется `not`, затем `and`, и в последнюю очередь `or`. Что выведет этот код, учитывая данный порядок операций?
# Какой будет результат с учетом приоритета?
result = True or False and False
print(result)Присваивание или сравнение?
Одна из самых частых ошибок у новичков — использование оператора присваивания `=` вместо оператора сравнения `==` в условиях. Это приводит к ошибке `SyntaxError`. Найдите и исправьте эту ошибку в коде.
access_level = 5# Здесь ошибка: используется = вместо ==if access_level = 5: print("Доступ уровня 'Админ' подтвержден")