ЯдроКодаподготовка к экзаменам
Учебная платформа

Загружаем материалы

Подготавливаем материалы и навигацию по разделу.

Логический тип и сравнения в Python

Автор: · Обновлено

Логический тип bool имеет два значения: True и False. Они появляются как результат сравнения и помогают программе принимать решения. Сравнение не изменяет операнды, а отвечает на конкретный вопрос о них.

Один набор данных — несколько вопросов

score = 72

print(score >= 60)
print(score == 100)
print(score != 0)
print(50 <= score <= 80)

Ожидаемый вывод:

True
False
True
True

Операторы <, <=, > и >= проверяют порядок, == — равенство, != — неравенство. Цепочка 50 <= score <= 80 читается почти как математическая запись и проверяет обе границы сразу.

Равенство не является присваиванием

Один знак = сохраняет значение, а два знака == сравнивают. Запись score = 100 меняет переменную; выражение score == 100 оставляет её прежней и возвращает логический ответ. Использование = там, где требуется условие, приводит к синтаксической ошибке.

Строки тоже сравниваются, но регистр и пробелы значимы: 'да' == 'Да' ложно. При сравнении числового ввода сначала нужен int или float; строка '10' не равна числу 10. Не называйте логическую переменную неопределённым словом result: имя is_passed или has_ticket лучше объясняет вопрос.

Проверка диапазона

Прочитайте температуру и сохраните три ответа: ниже ли она нуля, находится ли в диапазоне от 18 до 25 включительно и равна ли ровно 100. Выведите ответы с поясняющими подписями. Проверьте значения -1, 18, 25 и 26, заранее составив таблицу истинности. Если граница ведёт себя неверно, сравните смысл слов «не меньше» и «больше» с выбранным оператором.

Сравнение под наблюдением

Постройте список значений около границы 60: 59, 60 и 61. Для каждого выведите само число и результаты выражений больше 60, не меньше 60 и равно 60. По таблице сопоставьте операторы русским формулировкам. Повторите опыт для строк «Да», «да» и «да » и добавьте нормализацию strip().lower(). Не меняйте исходные значения незаметно: сохраняйте clean отдельно. В отчёте укажите, какая часть сравнения отвечает за тип, какая — за регистр, а какая — за включение границы. Это полезнее запоминания отдельных знаков.

Практикум: таблица сравнений для возраста

Для возрастов 11, 12, 17 и 18 вычислите признаки is_teen, can_vote и is_child по заранее записанным правилам. Напечатайте значение и тип каждого выражения. Добавьте цепочку 12 <= age <= 17 и эквивалент через and, сравнив все тесты. Затем намеренно сравните строку из input с числом и разберите ошибку типов. Границы 12, 17 и 18 должны присутствовать отдельно: именно они отличают операторы < и <=.

Контрольная точка

Почему выражение age >= 12 уже является логическим и его не нужно оборачивать в if, чтобы сохранить в переменную? Назовите возможные значения и покажите их использование позже.

Частые вопросы

Можно ли писать несколько сравнений подряд в Python?

Да, запись left <= value <= right проверяет обе границы и читается близко к математике. Для разных объектов или сложных правил могут понадобиться отдельные сравнения, объединённые логическими операциями.

Источники