📖 Зміст
Частина 1: Світ програмування навколо нас
Частина 2: Алфавіт і словник програмування
Частина 3: Будуємо перші програми
Частина 4: Наш дивовижний мозок
Частина 5: Творчі проекти
Частина 6: Програмування в реальному світі
Частина 7: Від електрики до штучного інтелекту
Глава 9 з 27
3: Будуємо перші програми
Розділ 9: "Функції: корисні заклинання"
Професор Біт запросив Алісу на кухню, де він збирався готувати піцу.
— Сьогодні ми будемо говорити про функції, — сказав Професор, надягаючи фартух. — І приготування піци допоможе нам зрозуміти цю концепцію.
— Функції? — перепитала Аліса. — Як в математиці?
— У програмуванні функції схожі на математичні, але вони можуть робити набагато більше, — пояснив Професор. — Функція — це набір команд, які виконують певне завдання. Ми даємо цьому набору ім'я, і потім можемо викликати його, коли нам потрібно.
Професор дістав рецепт піци:
— Дивись, весь процес приготування піци можна розбити на окремі завдання: замісити тісто, приготувати соус, натерти сир, викласти начинку, запекти в духовці. Кожне таке завдання ми можемо оформити як окрему функцію.
Він на мить замовк і тихо прочитав:
Какая функция цветка?
Зачем ему цвести и пахнуть?
Чтоб, красоту увидев, ахнуть,
Коснувшись шёлка лепестка!
Какие функции лесов?
Они как будто прячут что-то,
Приберегают для кого-то
Под сенью вековых стволов.
Известных действий и шагов
Набор цикличных повторений,
План из намерений и мнений
Ты в функцию собрать готов.
Рецепт — как функции шаблон:
Едва подумаешь о блюде,
Как мысль твои нейроны будит,
Чтоб в точности свершился он.
Рождаясь с функцией такой:
Дышать, любить, расти, стремиться,
Чтоб уникально проявиться —
Собой рождается любой.
Байт вивів на свій екран приклад коду:
python
def замісити_тісто():
print("1. Насипаємо борошно")
print("2. Додаємо воду")
print("3. Додаємо сіль і дріжджі")
print("4. Замішуємо")
print("5. Даємо постояти 30 хвилин")def приготувати_соус():
print("1. Подрібнюємо помідори")
print("2. Додаємо спеції")
print("3. Варимо 15 хвилин")
def приготувати_піцу():
замісити_тісто()
приготувати_соус()
print("Розкочуємо тісто")
print("Викладаємо соус")
print("Сиплемо сиром")
print("Викладаємо начинку")
print("Запікаємо 15 хвилин при 220 градусах")
print("Піца готова!")
— Бачиш, — сказав Професор, починаючи замішувати тісто, — ми створили три функції. Перші дві виконують окремі кроки, а третя використовує їх і додає свої дії.
тісто, приготуватисоус і приготувати_піцу" class="rounded-lg shadow-md w-full h-auto" loading="lazy" decoding="async" />
— Ключове слово def означає "визначити функцію", — додав він. — Після нього йде ім'я функції та дужки. Всередині дужок можуть бути параметри, але про це трохи пізніше.
— А навіщо потрібні функції? — запитала Аліса, допомагаючи терти сир. — Чому б просто не написати всі команди по порядку?
Логік, що спостерігала за процесом з верхньої полиці, відповіла:
— Функції вирішують кілька важливих завдань:
1. Повторне використання коду — якщо тобі потрібно виконати одну й ту саму дію кілька разів, ти можеш просто викликати функцію, а не копіювати код.
2. Структурування програми — функції роблять код більш організованим і зрозумілим.
3. Абстракція — ти можеш викликати функцію, не замислюючись про те, як саме вона працює всередині.
— Як з рецептом піци! — здогадалась Аліса. — Я можу сказати "приготувати піцу", і це зрозуміло, навіть якщо я не пам'ятаю всі кроки.
— Саме так! — зрадів Професор. — А тепер поговоримо про параметри функцій.
Він написав новий приклад:
python
def привітати(ім'я):
print("Привіт, " + ім'я + "!")привітати("Аліса") # Виведе: Привіт, Аліса!
привітати("Байт") # Виведе: Привіт, Байт!
— Параметри — це інформація, яку ми передаємо в функцію, — пояснив Професор. — У цьому прикладі функція привітати приймає параметр ім'я і використовує його для створення привітання.
— А можна передавати кілька параметрів? — запитала Аліса.
— Звичайно! — кивнув Професор, дістаючи продукти для соусу. — Ось приклад функції з кількома параметрами:
python
def приготувати_піцу(розмір, начинка, сир):
print("Готуємо піцу розміру", розмір)
print("Начинка:", начинка)
print("Сир:", сир)
# ... решта кроків приготування ...приготувати_піцу("велика", "пепероні", "моцарела")
приготувати_піцу("маленька", "гриби та оливки", "чеддер")
— Так ми можемо готувати різні піци з різними параметрами, використовуючи одну й ту саму функцію! — вигукнула Аліса.
— Вірно! — підтвердив Професор. — А ще функції можуть повертати результат за допомогою команди return.
python
def додати(a, b):
сума = a + b
return сумарезультат = додати(5, 3) # результат дорівнюватиме 8
print(результат)
— Тут функція додати приймає два числа, складає їх і повертає результат, — пояснив він. — Цей результат можна зберегти в змінну або одразу використати.
Байт продемонстрував ще один приклад:
python
def розрахувати_вартість(товар, кількість):
if товар == "яблуко":
ціна = 10
elif товар == "банан":
ціна = 15
else:
ціна = 20 всього = ціна * кількість
return всього
сума = розрахувативартість("яблуко", 5) + розрахувативартість("банан", 3)
print("До оплати:", сума, "гривень")
— Функції можна комбінувати і викликати одну з іншої, — додав Професор, розкочуючи тісто. — Як у рецепті піци, де функція приготуватипіцу викликає функції замісититісто і приготувати_соус.
— А в реальному житті є приклади функцій? — запитала Аліса.
— Безліч! — відповіла Логік. — Будь-яка повторювана послідовність дій може бути представлена як функція. Наприклад:
— У природі теж є аналоги функцій, — додав Професор. — Наприклад, бджоли виконують певний "танець", щоб повідомити іншим бджолам, де знаходиться нектар. Це як функція з параметрами: напрямок і відстань до квітів.
Коли піца була готова і відправлена в духовку, Професор продовжив:
— Функції — це один із способів організації коду. Вони дозволяють створювати модульні програми, де кожен модуль відповідає за своє завдання. Це робить код більш зрозумілим, більш надійним і його легше змінювати.
— Як конструктор LEGO! — здогадалась Аліса. — Кожна деталь виконує свою роль, а разом вони створюють складну модель.
— Відмінне порівняння! — похвалив Професор. — І як у конструкторі, ти можеш створювати свої власні деталі-функції для вирішення конкретних завдань.
Завдання
python
def зібратиягоди(типягід, кількість):
print("Ти зібрав", кількість, тип_ягід)
return кількість * 5 # очки за збір ягідdef зустріти_тварину(тварина):
if тварина == "вовк":
print("Обережно! Це вовк!")
return "втекти"
elif тварина == "заєць":
print("Це просто заєць. Він нешкідливий.")
return "продовжити шлях"
else:
print("Ти зустрів", тварина)
return "спостерігати"
Придумай ще 2-3 функції для своєї гри і опиши, які параметри вони приймають і що повертають.