v1.0.0

Python с нуля для ЕГЭ · Условия: сравнения и выбор из двух вариантов

Урок курсаPython 35 задачБесплатно

Условия: сравнения и выбор из двух вариантов

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

Теория

Что получается при сравнении

Сравнение отвечает на один вопрос: верно ли указанное условие. У ответа только два возможных значения — True(«да, верно») и False («нет, неверно»).

temperature = 3print(temperature < 0)print(temperature >= 0)

При temperature = 3 первое сравнение даёт False, а второе — True. Python ещё ничего не выбирает: пока он только вычисляет результаты двух сравнений.

Разберём на примере
Проверим условие без догадки
Пусть score = 10. Вычислим score >= 10 по частям.
  1. Слева стоит текущее значение score, то есть 10.
  2. Знак >= означает «больше или равно», поэтому равенство тоже подходит.
  3. Условие 10 >= 10 верно, его результат — True.

Как if выбирает действие

Команда if выполняет вложенный блок только тогда, когда условие после неё равно True. После условия ставится двоеточие, а команды внутри ветви сдвигаются вправо одинаковым отступом.

temperature = int(input())if temperature < 0:    print("На улице мороз")print("Проверка закончена")

Строка про мороз появится только для отрицательной температуры. Последняя команда не входит в ветвь: у неё нет отступа, поэтому она выполняется при любом вводе.

Проверьте себя
Что напечатает программа выше, если пользователь введёт число 2?
Только Проверка закончена. Сравнение 2 < 0 даёт False, поэтому вложенная команда пропускается.

Как выбрать одну из двух ветвей

Если программа должна выполнить одно действие при верном условии и другое — при неверном, после if добавляют else. За один запуск выполняется ровно одна из этих ветвей.

age = int(input())if age >= 14:    print("Можно участвовать")else:    print("Пока рано")
Как действовать
Прослеживаем программу с if/else
  1. Подставьте введённое значение. Замените имя переменной в условии конкретным числом.
  2. Вычислите результат сравнения. Получите True или False до выбора ветви.
  3. Выполните одну подходящую ветвь. При True работает блок if, при False — блок else.
  4. Продолжите после условия. Команды без отступа после обеих ветвей выполняются дальше по порядку.

Как не потерять граничное значение

Знаки > и < не включают границу, а >= и <=включают её. Для правила «14 лет и старше» нужен знак >=: значение 14 должно попасть в первую ветвь.

Для проверки равенства используют ==, а для неравенства — !=. Один знак = не сравнивает значения: он сохраняет значение в переменной.

Проверьте себя
Какой знак подойдёт для правила «температура не выше 5 градусов»?
Знак <=. Формулировка «не выше» включает и все значения меньше 5, и саму границу 5.

Как проверить обе ветви

Один удачный запуск проверяет только одну ветвь. Подберите минимум два значения: одно делает условие верным, другое — неверным. Если в условии есть граница, проверьте и её отдельно.

number = int(input())if number > 0:    print("Положительное")else:    print("Ноль или отрицательное")

Запустите программу со значениями 3, −2 и 0. Ноль особенно важен: он стоит на границе и не является положительным числом.

Проверьте себя
Почему для условия number > 0 недостаточно проверить только число 3?
Такой запуск показывает лишь ветвь if. Нужны ещё значение для else и сама граница 0.
Проверьте себя
Какие три шага нужны, чтобы проследить программу с if/else для конкретного ввода?
Подставить значение, получить True или False и выполнить только соответствующую ветвь.

Практика

Вычислите результат сравнения

В программе записано n = 7, а следующая строка печатает результат выражения n >= 5. Что появится на экране?

Подсказка
Подставьте 7 вместо n и проверьте, верно ли, что 7 больше или равно 5.
Решение

Сравнение проверяет одно утверждение.

  1. Подставляем значение n и получаем 7 >= 5.
  2. Число 7 больше 5, поэтому утверждение верно.
  3. Результат сравнения в Python записывается как True.

Проследите выбор ветви

Программа получает число n. Если n > 5, она печатает «больше», иначе — «не больше». Какой текст появится на экране, если пользователь введёт 4?

Подсказка
Сначала вычислите сравнение 4 > 5. При False выполняется ветвь else.
Решение

Идём в том же порядке, что и Python.

  1. После ввода в n хранится число 4.
  2. Сравнение 4 > 5 даёт False.
  3. Ветвь if пропускается, а ветвь else печатает «не больше».

Проверьте значение на границе

Если score >= 10, программа печатает «зачёт», иначе — «ещё раз». Что она напечатает при score = 10?

Подсказка
Знак >= включает равенство: сравните 10 и саму границу 10.
Решение

Сравнение 10 >= 10 даёт True, потому что знак >= включает равенство. Поэтому выполняется первая ветвь и программа печатает «зачёт».

Подберите знак сравнения

Программа должна считать правило «участвовать можно с 14 лет включительно». Какой знак нужно поставить вместо пропуска в условии age __ 14?

Подсказка
Возраст 14 должен давать True, как и любое большее значение.
Решение

Проверим формулировку на самой границе.

  1. Слова «с 14 лет включительно» означают, что возраст 14 подходит.
  2. Сравнение age > 14 исключило бы саму границу.
  3. Знак >= принимает и 14, и любое большее значение.

Создайте программу, которая получает температуру. Если она меньше нуля, программа печатает «мороз», иначе — «не мороз». Запустите файл, введите 0 и перенесите сюда текст с экрана.

Подсказка
Ноль не меньше нуля, поэтому для него должна выполниться ветвь else.
Решение

Здесь важно проверить саму границу.

  1. temperature = int(input()) сохраняет введённый 0 как число.
  2. Сравнение 0 < 0 даёт False.
  3. Python пропускает ветвь if и выполняет else, поэтому печатает «не мороз».

Один из вариантов программы

temperature = int(input())if temperature < 0:    print("мороз")else:    print("не мороз")

Итог

Что теперь понятно

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

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

Что вы уже умеете

  • Объяснять, какое значение True или False даёт сравнение
  • Прослеживать выполнение программы с if и else
  • Выбирать строгий или нестрогий знак сравнения для граничного значения
  • Писать программу, которая выбирает один из двух вариантов
  • Проверять обе ветви программы на своём компьютере

Прогресс

0 / 5
x

Вы ещё не решали задания