§ 30. Множинне розгалуження
Якщо потрібно запрограмувати розгалуження за трьома та більше гілками, зручно використовувати команду множинного розгалуження if-elif-else.
Завдання 1
30.1. Команда if-elif
Опис виконання команди: залежно від значення змінних під час перевірки умови вибрати дію, яку слід виконати.
Синтаксис неповної форми команди if-elif:
if <умова 1>:
___<команди 1>
elif <умова 2>:
___<команди 2>
elif <умова 3>:
___<команди 3>
Гілок elif (elif — від англ. else if — інше якщо) може бути як завгодно багато. У кожній із них обов’язково має бути логічний вираз — умова.
Якщо <умова 1> істинна, то виконуються <команди 1> і керування передається команді, записаній після if-elif. Якщо <умова 1> хибна, то гілки elif перебираються послідовно до першої істинної умови. Після виконання відповідних їй команд, решта гілок elif пропускаються й керування передається команді, записаній після if-elif. Якщо хибні всі умови, жодна з гілок виконана не буде.
Приклад 1
Герой української народної казки опинився на роздоріжжі. Нехай напрямок руху зберігається в змінній s:
if s == 'Прямо підеш': print('коня загубиш')
elif s == 'Наліво підеш': print('себе загубиш')
elif s == 'Направо підеш': print('щастя знайдеш')
Приклад 2
Перепишемо за допомогою if-elif код розв’язання задачі з прикладу 2 § 29: визначити N — номер чверті, у якій розташована точка з координатами x, y (х ≠ 0, у ≠ 0).
х = int(input('x = ?')
y = int(input('y = ?')
if x>0 and y>0: print('I чверть')
elif x<0 and y>0: print('II чверть')
elif x<0 and y<0: print('III чверть')
elif x>0 and y<0: print('IV чверть')
Завдання 2
30.2. Команда if-elif-else
У прикладі 2 складені умови, що перевіряються в гілках if-elif, охоплюють усі варіанти розташування точки. Тож якась із гілок обов’язково буде виконана.
Якщо є потреба опрацювати значення змінної, яке не розглядається в умовах, то слід використати повну форму команди множинного розгалуження. Тобто додати гілку else і записати в ній команди, які слід виконати, якщо всі умови в гілках if-elif виявилися хибними. Гілка else виконується, коли не виконується жодна з умов гілок if-elif.
Синтаксис команди
if-elif-else:
if <умова 1>:
___<команди 1>
elif <умова 2>:
___<команди 2>
elif <умова 3>:
___<команди 3>
else:
___<команди 4>
Приклад 3
Команда if-elif-else перевіряє, чи є натуральне одноцифрове число х простим, чи складеним. У гілках elif перевіряється, чи є число х одним зі значень у списку.
if x == 1: print('Це 1')
elif x in [2, 3, 5, 7]: print('Це – просте число')
elif x in [4, 6, 8, 9]: print('Це – складене число')
else: print('Дане число не є одноцифровим')
Приклад 4
Запишемо команду для вибору повідомлення залежно від суми балів, отриманих ученицею.
if n<4: print('Вам доведеться виконати тест ще раз')
elif n<7: print('Ваша оцінка – задовільно')
elif n<10: print('Ваша оцінка – добре')
else: print('Ваша оцінка – відмінно')
Приклад 5
Напишемо програму, яка за номером місяця виводить назву пори року.
Порівняємо готову програму з нашою програмою
Використання команди множинного розгалуження допоможе запрограмувати вибір із великої кількості варіантів.
Завдання 3
Питання для самоперевірки
1. Як записується й виконується команда if-elif-else у пов- ній та неповній формах?
2. Якого значення набуде змінна х після виконання команди розгалуження для початкових значень а:
а) 13; б) 40; в) 88; г) 31; д) 26?
1) if а<20: х = 0 elif а<30: х = a+10 elif а<50: х = a*10 else: х = a+1
2) if а%10<3: х = a*2 elif а%10<=5: х = a+10 elif а%10 <= 7: х = a*10 else: х = a+1
3. Напишіть програму, яка запитує вік дитини й визначає, у якій ланці вона навчається: у початковій школі (1–4 класи), базовій (5–9 класи), старшій (10–11 класи).
4. Напишіть програму, у якій із клавіатури вводяться числа 1, 2 або 4 — кількість кінцівок у тварини. Комп’ютер виводить назву тварини, яка їх має.
Задача. Касир продає квитки на автобус, який курсує від міста А до міста В. Вартість квитка залежить від відстані, на яку потрібно їхати. Обчисліть, скільки коштуватимуть N квитків до пункту, відстань до якого вводиться з клавіатури, якщо:
1. Завантажте програму Python → IDLE. Створіть нове вікно програми.
Запишіть команду введення значення відстані та присвоєння його змінній v:
v = int(input('v = ?'))
2. Запишіть команду введення значення змінної N:
N = int(input('N = ?'))
6. Збережіть файл із назвою Vprava30 у власну папку.
Закінчіть роботу, закривши вікно IDLE.