Булевы значения (bool)

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

В этом модуле мы погружаемся в мир логики Python. Вы познакомитесь с булевыми значениями — фундаментом для принятия решений в ваших программах. Это всего два слова, `True` и `False`, но они управляют всем: от простого `if` до сложных циклов и алгоритмов.
Мы начнем с самых основ: как создать булеву переменную. Затем научимся получать `True` или `False` с помощью операторов сравнения (`==`, `!=`, `<`, `>`). После этого мы перейдем к настоящей магии — логическим операторам `and`, `or` и `not`, которые позволяют комбинировать условия. Вы разберетесь, что такое "истинность" (Truthiness) и почему не только `True` может быть правдой в условиях. Задания построены от простого к сложному, чтобы вы шаг за шагом стали мастером логики в Python.

Список тем

Основы: True и False

id: 39954_task_bool_1

В Python есть два специальных значения для представления истины и лжи. Заполните проpuски, чтобы присвоить переменным `is_correct` и `is_failed` соответствующие булевы значения.

Заполните пропуски
# Переменная для истинного значения
is_correct = input1S

# Переменная для ложного значения
is_failed = input2S

print(f"Правильно: {is_correct}, Ошибка: {is_failed}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Результат сравнения

id: 39954_task_bool_2

Операторы сравнения, такие как `>` (больше чем), всегда возвращают булево значение. Проанализируйте выражение и определите, какой результат — `True` или `False` — оно вернет.

Выберите правильный вариант ответа
# Что вернет это сравнение?
result = 5 > 3
print(result)
Сообщения
Проверить
Показать подсказку

Проверка на равенство

id: 39954_task_bool_3

Оператор `==` используется для проверки, равны ли два значения. Что выведет на экран код, который сравнивает два одинаковых числа? Введите результат: `True` или `False`.

Что должно получиться?
value_a = 10
value_b = 10

print(value_a == value_b)
Сообщения
Проверить
Показать подсказку

Исправьте ошибку в ключевом слове

id: 39954_task_bool_4

В Python булевы значения имеют строгий синтаксис. В данном коде допущена распространенная ошибка, из-за которой программа упадет с `NameError`. Найдите и исправьте ее.

Найдите ошибку и исправьте
# Устанавливаем флаг активности
is_active = true
if is_active:
    print("Пользователь активен")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сопоставьте операторы сравнения

id: 39954_task_bool_5

Для создания булевых выражений используются операторы сравнения. Сопоставьте каждый оператор из правой колонки с его правильным описанием в левой.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Проверяет, что значения РАВНЫ
Проверяет, что значения НЕ РАВНЫ
Проверяет, что левое значение БОЛЬШЕ ИЛИ РАВНО правому
Проверяет, что левое значение МЕНЬШЕ правого
!=
<
==
>=
Сообщения
Проверить
Показать подсказку

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

id: 39954_task_bool_6

Оператор `not` инвертирует (меняет на противоположное) булево значение. Что выведет на экран этот код?

Выберите правильный вариант ответа
is_sunny = True
print(not is_sunny)
Сообщения
Проверить
Показать подсказку

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

id: 39954_task_bool_7

Оператор `and` (логическое "И") возвращает `True` только в том случае, если оба условия истинны. Какой результат вернет данное выражение? Введите `True` или `False`.

Что должно получиться?
# Проверка прав доступа
has_key = True
has_permission = False

print(has_key and has_permission)
Сообщения
Проверить
Показать подсказку

Сложные условия доступа

id: 39954_task_bool_8

Заполните пропуски, используя логические операторы `and` и `or`, чтобы реализовать следующую логику: доступ разрешен, если (пользователь старше 18 лет И у него есть премиум-статус) ИЛИ если он администратор.

Заполните пропуски
age = 20
is_admin = False
is_premium = True

# Доступ разрешен администраторам или взрослым пользователям с премиум-статусом
if (age > 18 input1S is_premium) input2S is_admin:
    print("Доступ разрешен")
else:
    print("Доступ запрещен")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Истина или ложь? (Truthiness)

id: 39954_task_bool_9

В Python не только `True` и `False` имеют булевый смысл. Многие другие значения тоже могут быть интерпретированы как истинные или ложные в логическом контексте (например, в `if`). Распределите значения по двум категориям: те, что считаются истинными (Truth-like), и те, что считаются ложными (Falsy).

Перетяните элементы в соответствующие блоки
Считаются ложными (Falsy)
Считаются истинными (Truth-like)
0
1
""
"hello"
[]
[1, 2]
None
-10
Сообщения
Проверить
Показать подсказку

Соберите проверку билета

id: 39954_task_bool_10

Соберите из фрагментов код, который проверяет, действителен ли билет. Билет действитеlen, если он не просрочен (`is_expired` равно `False`) и еще не был использован (`is_used` равно `False`). Одна из строк является лишней и не должна использоваться.

Перетяните в правильном порядке строки из одного блока в другой
is_expired = False
    print("Билет недействителен")
if not is_expired and not is_used:
is_used = False
else:
    print("Билет действителен")
if is_expired or is_used:
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

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

id: 39954_task_bool_11

У логических операторов есть приоритет выполнения: сначала выполняется `not`, затем `and`, и в последнюю очередь `or`. Что выведет этот код, учитывая данный порядок операций?

Выберите правильный вариант ответа
# Какой будет результат с учетом приоритета?
result = True or False and False
print(result)
Сообщения
Проверить
Показать подсказку

Присваивание или сравнение?

id: 39954_task_bool_12

Одна из самых частых ошибок у новичков — использование оператора присваивания `=` вместо оператора сравнения `==` в условиях. Это приводит к ошибке `SyntaxError`. Найдите и исправьте эту ошибку в коде.

Найдите ошибку и исправьте
access_level = 5
# Здесь ошибка: используется = вместо ==
if access_level = 5:
    print("Доступ уровня 'Админ' подтвержден")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру