Сравнения и логика

Урок 3.1 · Программирование с нуля · Модуль 3. Условия · Бесплатно

Цель урока: Понять, как программа сравнивает значения, получает True или False и соединяет проверки словами and, or, not.

Нужно знать заранее: Числа и строки

Объяснение

Зачем это нужно: Представьте, что вы пишете программу для входа на сайт. Если пароль верный — пустить, если нет — сказать «попробуйте ещё раз». Или интернет-магазин: если на карте хватает денег — оплатить, если нет — показать «недостаточно средств». Или игра: если здоровье кончилось — показать «игра окончена». Во всех этих случаях программа сначала задаёт вопрос и получает ответ «да» или «нет», и только потом решает, что делать. Вопрос, на который можно ответить «да» или «нет», в программировании называется сравнением. Сравнение — это не команда, которая что-то делает, а проверка: «5 больше 3?», «пароль равен "python"?», «возраст не меньше 18?». Ответ у сравнения всегда один из двух: True (истина, «да») или False (ложь, «нет»). Без сравнений программа не умеет выбирать: она всегда выполняет одни и те же команды сверху вниз. Сравнения — первый шаг к тому, чтобы код принимал решения. В следующем уроке появится if — команда, которая выполняет блок только тогда, когда сравнение дало True. Поэтому сейчас важно научиться получать True и False и понимать, откуда они берутся.

Как это работает: Шесть знаков сравнения: > — больше: 5 > 3 → True. < — меньше: 5 < 3 → False. >= — больше или равно: 18 >= 18 → True. <= — меньше или равно: 16 <= 18 → True. == — равно: 5 == 5 → True. Это два знака «равно» подряд. != — не равно: 5 != 3 → True. Результат сравнения — обычное значение типа bool (логический тип). Его можно напечатать: print(5 > 3) выведет True. Его можно положить в переменную: is_adult = age >= 18 — и потом использовать. Сравнивать можно числа: 10 > 4. Можно строки: "apple" < "banana" — строки сравниваются по алфавиту, и это работает для латиницы; с кириллицей порядок другой, поэтому на строках лучше сравнивать только на равенство: password == "python". Сравнения можно соединять логическими словами: and — «и»: True and True → True, а если хотя бы одно False, результат False. Пример: age >= 18 and score > 60 — «совершеннолетний и балл больше 60». or — «или»: True or False → True, результат True, если верно хотя бы одно. Пример: age < 18 or score > 60 — «несовершеннолетний или балл больше 60». not — «не»: переворачивает значение. not True → False, not False → True. Пример: not age < 18 — «неправда, что возраст меньше 18», то есть возраст 18 или больше. Порядок: сначала not, потом and, потом or. Если сомневаетесь — ставьте скобки: (age >= 18 and score > 60) or is_vip. Имена переменных берут из английского и пишут латиницей: age — возраст score — балл, счёт password — пароль is_adult — совершеннолетний is_vip — VIP-клиент Имя ничего не считает — оно объясняет человеку, что лежит внутри.

Разбор: age = 18, score = 75. age >= 18 → True: 18 больше или равно 18. score > 90 → False: 75 не больше 90. age == 18 → True: два знака «равно» сравнивают, а не присваивают. age != 18 → False: возраст всё-таки 18, значит «не равно» — ложь. age >= 18 and score > 60 → True and True → True: оба условия верны. age < 18 or score > 60 → False or True → True: хватает одного верного. not age < 18 → not False → True: «неправда, что 18 меньше 18». print(5 = 5) → ошибка: одиночное «равно» внутри выражения не работает, оно только кладёт значение в переменную.

Частая ошибка: Перепутать = и ==. age = 18 кладёт 18 в переменную, age == 18 спрашивает «равно ли 18?». Внутри print(5 = 5) одиночное «равно» — ошибка. Писать True и False с маленькой буквы: true и false — это не значения Python, будет ошибка имени. Писать => вместо >=: в Python «больше или равно» — это >=, а => не существует. Сравнивать строку с числом: "18" == 18 → False, потому что текст и число — разные значения. Сначала превратите текст в число: int("18") == 18 → True. Забыть, что and требует оба условия: True and False → False, а не True.

Итог: Сравнение задаёт вопрос и даёт True или False. Шесть знаков: >, <, >=, <=, ==, !=. Слова and, or, not соединяют проверки: and — нужны оба, or — хватит одного, not — переворачивает. «Равно» — два знака. В следующем уроке из этих True и False вырастет if.

Что дальше: В уроке 3.2 появится if — команда, которая выполняет код только тогда, когда сравнение дало True. Сравнения из этого урока станут её условиями.

age = 18
score = 75

print(age >= 18)                  # True
print(score > 90)                 # False
print(age == 18)                  # True
print(age != 18)                  # False

print(age >= 18 and score > 60)   # True: оба условия верны
print(age < 18 or score > 60)     # True: хватает одного
print(not age < 18)               # True: «неправда, что 18 меньше 18»

Шесть проверок

Даны три значения: age = 20 score = 55 password = "python" Выведите шесть результатов проверки, каждый с новой строки: 1) возраст 18 или больше; 2) балл больше 60; 3) пароль равен "python"; 4) возраст 18 или больше И балл больше 60; 5) возраст меньше 18 ИЛИ балл больше 50; 6) НЕ (пароль равен "python"). Ожидаемые значения: True, False, True, False, True, False. Имена переменных — английские слова: age — возраст score — балл, счёт password — пароль Можно взять эти имена или свои.

Критерий успеха: Выведены шесть значений в правильном порядке: True, False, True, False, True, False. Видно, что and требует оба условия, or — хотя бы одно, not — переворачивает.

Уроки модуля 3

Что ещё есть на сайте

Учиться

  • Уроки — Все уроки трёх траекторий: список, поиск и ваш прогресс.
  • Программирование с нуля — Python с первой команды до своего проекта: 12 модулей.
  • Интерфейсы и сайты с нуля — Кнопки, страницы и мини-игры: результат виден сразу в браузере.
  • Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
  • Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
  • Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
  • Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
  • Конструктор описания задачи — Собрать описание по полям и получить готовый текст для исполнителя.

С чего начать

Потренироваться

  • Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
  • Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
  • Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
  • Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
  • Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.

Словари и юмор

Сайт, оплата и помощь

  • Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.
  • Инструкция пользователя — Как всё устроено: уроки, кабинет, уведомления, подписка, ярлык.
  • Сообщество — Вопросы и ответы: читать можно всем, писать — после входа.
  • Подписка — Тарифы, что входит, возврат 14 дней, история платежей.
  • Помощь и поддержка — Частые вопросы и форма обращения — ответ в течение дня.
  • Отзывы учеников — Что пишут те, кто уже учится: без звёзд, с проверкой каждого текста.
  • Профиль и пароль — Имя, пароль для входа без кода, уведомления, свои данные.