Ветвление (условия)

До сих пор программа всегда делала одно и то же. Но настоящая сила — когда она сама принимает решение: показание датчика в норме — работаем дальше, превысило порог — тревога. Сегодня научим программу сравнивать и выбирать командой if. В конце соберём контроллер порога.

Развилка: датчик и две ветки — зелёная «норма» и красная «тревога»

После урока сможешь: Учим программу принимать решения: сравнения, if/elif/else, несколько порогов и составные условия and/or/not. В конце собираешь контроллер порога, который реагирует на показание датчика.

Сравнения: правда или нет

Компьютер умеет сравнивать значения и отвечать «правда» (True) или «неправда» (False) — это тип bool. Знаки сравнения: == (равно ли), != (не равно), > (больше), < (меньше), >= и <=.

print(50 > 80)
print(80 == 80)
print(90 >= 80)
False
True
True

Не путай == и =. Один знак = — «положи в переменную». Двойной == — «равно ли?» (сравнение). В условиях всегда двойной.

if / else — программа выбирает

if проверяет условие: если оно правда — выполняется один блок, иначе (else) — другой. Строки внутри сдвигают вправо отступом (4 пробела), а в конце строки с if и else ставят двоеточие.

temperatura = 90
if temperatura > 80:
    print("Тревога: перегрев")
else:
    print("Норма")
Тревога: перегрев
  if/else — развилка: одно условие, два пути

              temperatura > 80 ?
               /              \
          да  /                \  нет
             v                  v
     "Тревога: перегрев"      "Норма"

Отступ (4 пробела) показывает, что строка — внутри if или else. Без отступа Python выдаст ошибку. И не забудь двоеточие в конце строки с условием.

elif — несколько порогов

Когда вариантов больше двух, между if и else добавляют elif («иначе если»). Условия проверяются сверху вниз, срабатывает первое подходящее — удобно для нескольких порогов.

temperatura = 75
if temperatura > 90:
    print("Авария")
elif temperatura > 70:
    print("Внимание")
else:
    print("Норма")
Внимание
  elif — лесенка порогов (проверка сверху вниз):

   if   temperatura > 90  -->  "Авария"
   elif temperatura > 70  -->  "Внимание"
   else                   -->  "Норма"

   Срабатывает ПЕРВОЕ подходящее условие, остальные пропускаются.

Несколько условий сразу: and, or, not

Иногда нужно проверить сразу два условия. and («и») — правда, только если верны ОБА. or («или») — правда, если верно ХОТЯ БЫ ОДНО. not («не») переворачивает значение.

temperatura = 60
if temperatura >= 20 and temperatura <= 70:
    print("Рабочий диапазон")
if not (temperatura > 70):
    print("Перегрева нет")
Рабочий диапазон
Перегрева нет
  and — нужны ОБА        |   or — хватит ОДНОГО
  ---------------------- | ----------------------
  True  and True  = True  |  True  or False = True
  True  and False = False |  False or False = False
  False and False = False |  False or True  = True

  not True = False        |   not False = True

Подсказка-память: and строгий — придирается к обоим условиям; or добрый — рад любому одному.

Миссия: контроллер порога

Скопируй программу в песочницу и запусти. Она спросит температуру и выдаст уровень: норма, внимание или авария. Проверь разные значения: 50, 75, 95. Это упрощённая логика реального контроллера, который следит за датчиком.

# Контроллер порога температуры
temperatura = int(input("Температура датчика: "))

if temperatura > 90:
    print("АВАРИЯ: остановить привод")
elif temperatura > 70:
    print("ВНИМАНИЕ: снизить нагрузку")
else:
    print("НОРМА: работаем")
Температура датчика: 75
ВНИМАНИЕ: снизить нагрузку

Контрольный вопрос. Ты хочешь проверить в условии, равно ли значение порогу. Какой знак нужен?

А== — двойное равно, это сравнение «равно ли?»
Б= — одинарное равно
В=> — стрелка вправо

Подсказка: Один знак = кладёт значение в переменную. Для сравнения «равно ли» нужен другой знак.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши True или False.

Исходный код для этого задания:

print(80 >= 80)

Подсказка: >= это «больше или равно». 80 равно 80 — значит условие выполнено.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши True или False.

Исходный код для этого задания:

print(50 != 50)

Подсказка: != это «не равно». Равно ли 50 пятидесяти? Значит «не равно» — это…

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши True или False.

Исходный код для этого задания:

t = 60
print(t >= 20 and t <= 70)

Подсказка: and — правда, только если ОБА условия верны. Проверь каждое: 60>=20 и 60<=70.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет программа из этого задания? Впиши True или False.

Исходный код для этого задания:

print(50 > 90 or 2 < 3)

Подсказка: or — правда, если верно ХОТЯ БЫ одно. 50>90 — неправда, а 2<3 — ?

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет на экран программа из этого задания? Впиши слово, которое появится (без кавычек).

Исходный код для этого задания:

temperatura = 95
if temperatura > 90:
    print("Авария")
elif temperatura > 70:
    print("Внимание")
else:
    print("Норма")

Подсказка: Условия проверяются сверху вниз. 95 больше 90 — сработает первая ветка.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет на экран программа из этого задания? Впиши слово, которое появится (без кавычек).

Исходный код для этого задания:

temperatura = 60
if temperatura > 90:
    print("Авария")
elif temperatura > 70:
    print("Внимание")
else:
    print("Норма")

Подсказка: 60 не больше 90 и не больше 70 — значит дойдём до ветки else.

Онлайн-проверка ответа появится позже

Задание. Допиши программу. В ветке else не хватает ответа. Напиши команду print, которая выведет ровно: Норма

Исходный код для этого задания:

temperatura = 50
if temperatura > 80:
    print("Тревога: перегрев")
else:
    # напиши тут команду print со словом: Норма

Подсказка: Шаблон: print(«…текст…»). Текст в кавычках должен быть точно: Норма

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

Онлайн-проверка ответа появится позже

Задание. Допиши недостающее ключевое слово вместо ___. Нужно проверить ещё одно условие между if и else («иначе если»). Впиши только это слово.

Исходный код для этого задания:

if temperatura > 90:
    print("Авария")
___ temperatura > 70:
    print("Внимание")
else:
    print("Норма")

Подсказка: Это слово означает «иначе если» и стоит между if и else. Состоит из 4 букв.

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

Онлайн-проверка ответа появится позже

Задание. Напиши код сам. Нужна строка-заголовок условия: если температура строго больше порога 80. Переменная temperatura задана. Напиши только эту строку с if и двоеточием в конце.

Исходный код для этого задания:

temperatura = 90
# напиши ниже строку: если temperatura больше 80 (с двоеточием в конце)
    print("Тревога: перегрев")

Подсказка: Шаблон: if переменная > число:. Не забудь двоеточие в конце строки.

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Программа из этого задания падает с ошибкой в строке с if. Что не так?

Исходный код для этого задания:

temperatura = 90
if temperatura = 80:
    print("Ровно 80")
АВ условии стоит одинарное = вместо двойного == — для сравнения нужно ==
БПеред if не хватает команды print
Вtemperatura нельзя сравнивать с числом

Подсказка: Сравнение «равно ли» пишут двойным знаком. Один знак = это присваивание, в условии так нельзя.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Что выведет на экран программа из этого задания? Впиши слово, которое появится (без кавычек).

Исходный код для этого задания:

davlenie = 5
if davlenie < 2 or davlenie > 8:
    print("Вне нормы")
else:
    print("Норма")

Подсказка: or — правда, если верно хотя бы одно. 58? нет. Значит обе неправда — сработает else.

Онлайн-проверка ответа появится позже

Задание. Напиши программу целиком (6-7 строк). Спроси температуру командой input и преврати в число. Затем по порогам выведи уровень: если больше 90 — АВАРИЯ, иначе если больше 70 — ВНИМАНИЕ, иначе — НОРМА. Используй переменную temperatura и конструкцию if/elif/else.

Исходный код для этого задания:

# напиши программу:
# temperatura = int(input(...))
# if temperatura > 90:  -> print("АВАРИЯ")
# elif temperatura > 70: -> print("ВНИМАНИЕ")
# else: -> print("НОРМА")

Подсказка: Сначала temperatura = int(input(«Температура: «)). Потом три ветки if/elif/else, в каждой свой print. Не забудь двоеточия и отступы.

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

Онлайн-проверка ответа появится позже

Что дальше

Теперь программа умеет принимать решения — сравнивать, ветвиться через if/elif/else и проверять сразу несколько условий. На следующем занятии добавим циклы: программа сможет обрабатывать не одно показание, а целую серию измерений.

Итог: Теперь программа умеет принимать решения — сравнивать, ветвиться через if/elif/else и проверять сразу несколько условий. На следующем занятии добавим циклы: программа сможет обрабатывать не одно показание, а целую серию измерений.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева