Уроки 38–39 · 2 урока · М. Р. Файзиева, Д. М. Сайфуров, Н. С. Хайтуллаева. Информатика и информационные технологии, 9 класс. «Nashriyot uyi Tasvir», Ташкент, 2020
ЦельПроверяет несколько условий по очереди с помощью оператора elif, знает структуру и отступы вложенного if и пишет программы с выбором из многих путей.
Новые слова
elif: «иначе если», следующее условие, которое проверяется только если предыдущие были False · elifвыбор из многих вариантов: цепочка if, elif и else, в которой выполняется ровно один блок · ko‘p yo‘lli tanlovвложенный if: if, помещённый внутрь блока другого if, с ещё одним отступом · ichma-ich ifпорядок условий: выбирается первое True, поэтому порядок важен · shartlar tartibi
Объяснение
Когда нужно выбрать один из многих случаев, используется цепочка if, elif и else: Python проверяет условия сверху вниз, выполняет первый блок, оказавшийся True, и пропускает остальные; если ни одно не True, срабатывает else. Поэтому порядок условий важен: когда зимние месяцы уже отделены, условие m <= 5 соответствует только весенним месяцам. Число частей elif не ограничено, а else необязателен. Оператор выбора вроде CASE в других языках в Python заменяется этим способом. Внутри if может находиться другой if: внутренний if записывается с отступом на 4 пробела больше, чем внешний, иначе он становится отдельным условием. Внутреннее условие проверяется только тогда, когда внешнее равно True.
Примеры
Название времени года: m = int(input()) ⏎ if m == 12 or m == 1 or m == 2: ⏎ print("qish") ⏎ elif m <= 5: ⏎ print("bahor") ⏎ elif m <= 8: ⏎ print("yoz") ⏎ else: ⏎ print("kuz") Для месяца 7 зимнее условие ложно, m <= 5 ложно, m <= 8 истинно – выводится yoz.
Вложенный if: n = int(input()) ⏎ if n > 0: ⏎ if n % 2 == 0: ⏎ print("musbat juft") ⏎ else: ⏎ print("musbat toq") ⏎ else: ⏎ print("musbat emas") 9 положительно, поэтому проверяется внутреннее условие; 9 % 2 = 1, поэтому выводится musbat toq. Если набрать отрицательное число, внутренний if не проверяется и выводится musbat emas.
Работа в классе
«Переводчик оценок»: группа пишет программу, которая считывает оценку от 1 до 5; с помощью цепочки elif она выводит 5 – «a’lo» (отлично), 4 – «yaxshi» (хорошо), 3 – «qoniqarli» (удовлетворительно), 2 – «qoniqarsiz» (неудовлетворительно), а для любого другого числа else выводит «no such mark».
Упражнения
1
Что выводит программа о временах года для месяца 4?
bahor (весна)
2
Напишите программу с elif, определяющую знак числа («musbat», «manfiy», «nol»).
a = int(input()) ⏎ if a > 0: ⏎ print("musbat") ⏎ elif a < 0: ⏎ print("manfiy") ⏎ else: ⏎ print("nol")
3
Что выводит вложенная программа, если набрать n = -4?
musbat emas (не положительное)
4
Чем цепочка elif лучше нескольких отдельных if?
В цепочке выполняется только первый истинный блок; при отдельных if могут выполниться сразу несколько.