Розгалуження — це алгоритмічна структура, у якій залежно від виконання чи невиконання деякої умови здійснюється або та, або інша послідовність дій.
Для організації розгалужень у мові Python призначені умовні оператори if, if...else, if...elif...else.
Умовний оператор if
Неповне розгалуження використовується в тому випадку, коли визначені дії тільки у разі виконання умови. Алгоритмічній конструкції «неповне розгалуження» відповідає умовний оператор if.Оператор if призначено для виконання деякої послідовності дій у тому випадку, якщо істинною є зазначена умова.
Синтаксис оператора:
іf <умова>:
іf <умова>:
<оператори>
Оператор if перевіряє істинність зазначеної умови. Як умова використовується логічний вираз (або логічна змінна як окремий випадок логічного виразу). Умова істинна, якщо логічний вираз набуває значення True, і хибна в про тилежному випадку.
Якщо умова істинна (True), програма виконає дію, зазначену в частині <оператор>. Якщо ж умова хибна (False), то керування передається оператору, що міститься після оператора if.
Якщо умова істинна (True), програма виконає дію, зазначену в частині <оператор>. Якщо ж умова хибна (False), то керування передається оператору, що міститься після оператора if.
Блок-схема неповного розгалуження | Приклад |
Складемо програму для упорядкування введених із клавіатури значень змінних a і b так, щоб a не перевищувало b: a, b = map(int, input().split()) if a>b: a, b = b, a print(a, b) |
Зверни увагу!
Оператори записуються з обов’язковим однаковим відступом від лівого краю. Якщо оператор лише один, його можна записати після
двокрапки в одному рядку з умовою..
двокрапки в одному рядку з умовою..
Умовний оператор if...else
Повне розгалуження використовується в тому випадку, коли визначені різні дії в разі виконання та невиконання умови. Алгоритмічній конструкції «повне розгалуження» відповідає умовний оператор if...else.Синтаксис оператора:
if <умова>:
__<оператори 1>
else:
__<оператори 2>
Якщо умова виконується, тобто має значення True, то виконується блок дій <оператори 1>. В іншому випадку виконується блок дій <оператори 2>, записаний після службового слова еlse.
__<оператори 1>
else:
__<оператори 2>
Якщо умова виконується, тобто має значення True, то виконується блок дій <оператори 1>. В іншому випадку виконується блок дій <оператори 2>, записаний після службового слова еlse.
Зверни увагу!
Команди, вкладені в гілки if і else, записуються з однаковим відступом.
Блок-схема повного розгалуження | Приклад |
Складемо програму для перевірки, чи введені 3 числа є довжинами сторін прямокутного трикутника. Для перевірки скористаємось теоремою Піфагора: a, b, c = map(int, input().split()) if a**2 == b**2+c**2 or b**2 == a**2+c**2 or c**2 == a**2+b**2: print('Так') else: print('Ні') |
Приклад:
Обчислити значення виразу (a + 2b) / (a - 3b), де a, b — дійсні числа.
a, b = map(float, input().split())
if a—3*b = 0:
print( ’Вираз значення не має: ділення на нуль’)
else:
z = (a+2*b) /(a-3*b)
print(z)
a, b = map(float, input().split())
if a—3*b = 0:
print( ’Вираз значення не має: ділення на нуль’)
else:
z = (a+2*b) /(a-3*b)
print(z)
Приклад:
Обчислити значення заданої функції
x = float(input())
if (x > —3) and (x < 5): y = 2*x - 12
else: y = 7-8*x
print(y)
if (x > —3) and (x < 5): y = 2*x - 12
else: y = 7-8*x
print(y)
Вкладені розгалуження
Під час розв’язування багатьох задач виникає необхідність при виконанні (або невиконанні) деякої умови знову робити вибір. У такій ситуації застосовують так звані вкладені розгалуження: у відповідній гілці умовного оператора знову використовують оператор іf.Приклад:
Записати умовний оператор для обчислення значення функції:
If x < 0 Then y := x
Еlse If x <= 5 Then y := x * x
Else y := 2 * x;
Приклад:
Дано два числа. Визначити, чи рівні вони. Якщо ні, то яке з них більше?
if x == y: print(’Числа рівні’)
else:
if x == y: print(’Числа рівні’)
else:
if x>y: print(’Перше число більше’)
else: print(’Перше число менше’)
else: print(’Перше число менше’)
Приклад:
Складемо програму, яка б за уведеним цілим числом виводила слово «рік» у правильному відмінку.
K = int(input())
if K%10 == 0 or K%10>4 or K >= 11 and K <= 14: print('років')
else:
if K%10 == 1: print('рік')
else: print('роки')
if K%10 == 0 or K%10>4 or K >= 11 and K <= 14: print('років')
else:
if K%10 == 1: print('рік')
else: print('роки')
Умовний оператор if...elif...else
Перевірку умови в гілці else можна записати скорочено, скориставшись ключовим словом elif (англ. else if — інакше, якщо).
Синтаксис оператора:
if <умова1>: <оператори 1>
elif <умова2>: <оператори 2>
...
elif <умова N>: <оператори N>
else: <оператори>
if <умова1>: <оператори 1>
elif <умова2>: <оператори 2>
...
elif <умова N>: <оператори N>
else: <оператори>
Інструкція if-elif-else припиняє перегляд наступних гілок, як тільки логічний вираз у поточній гілці буде True. Так, якщо вираз при if (перша гілка) буде True, то після виконання блоку <оператори 1> керування передається наступному за if-elif-else оператору. Якщо жодна з умов по гілках if-elif не є істинною, виконується блок операторів по гілці else.
Зверни увагу!
У гілці elif обов’язково повинен бути логічний вираз — умова, як у заголовку if . У кінці після всіх гілок elif може бути одна гілка else для
обробки випадків, які не відповідають умовам гілки if і всіх elif .
обробки випадків, які не відповідають умовам гілки if і всіх elif .
Блок-схема множинного розгалуження | Приклад |
W = input('Введіть назву пори року: ') if W == 'весна': print('березень, квітень, травень') elif W == 'літо': print('червень, липень, серпень') elif W == 'осінь': print('вересень, жовтень, листопад') elif W == 'зима': print('грудень, січень, лютий') else: print('неправильні дані') |
Приклад:
Визначити, у якій координатній чверті лежить точка з координатами x, y (x ≠ 0, y ≠ 0).
x = int(input('x = ?'))
y = int(input('y = ?'))
if x>0 and y>0: print('І чверть')
elif x<0 and y>0: print('ІI чверть')
elif x<0 and y<0: print('ІII чверть')
elif x>0 and y<0: print('ІV чверть')
x = int(input('x = ?'))
y = int(input('y = ?'))
if x>0 and y>0: print('І чверть')
elif x<0 and y>0: print('ІI чверть')
elif x<0 and y<0: print('ІII чверть')
elif x>0 and y<0: print('ІV чверть')
else: print('Точка лежить на осі')
Джерела:
Інформатика : підруч. для 8 кл. закл. заг. серед.освіти / Йосиф Ривкінд [та ін.]. — Київ : Генеза, 2021.
Інформатика : підруч. для 8 кл. закл. заг. серед.освіти / О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов. — Х. : Вид-во «Ранок», 2021