Python • Тема 34 (Легкий старт) Інтерактивний підручник + Тренажер

Створення власних команд у Python: Зрозуміло про функції

Дізнайтеся, як розкласти складну програму на прості деталі конструктора, що таке змінні у функції та в чому різниця між друком на екран та поверненням результату.

1 Покроковий розбір: Як працюють функції?

Функція — це підпрограма (іменований блок коду), яку ми один раз описуємо, а потім можемо викликати за назвою скільки завгодно разів.

Сходинка 1

Найпростіша функція (без параметрів)

Ключове слово def походить від англійського слова define (визначати). Ми вигадуємо ім'я функції, ставимо дужки () та двокрапку :. Усе, що відноситься до функції, пишеться з відступом у 4 пробіли.

1. Створення (Опис рецепта)
def say_hello():
    print("Привіт! Я функція робота.")
    print("Готовий допомагати!")
2. Виклик (Натискання кнопки)
# Просто пишемо ім'я та дужки:
say_hello()
say_hello()

# Надрукує текст ДВІЧІ!
💡 Аналогія з життя: Пульт від телевізора. Кнопка «Увімкнути» вже містить у собі інструкцію із десятка електронних сигналів. Ви просто натискаєте одну кнопку!
Сходинка 2

Передаємо дані: Параметри та Аргументи

Щоб функція не робила завжди одне й те саме, їй можна передавати «вхідні дані» (параметри). Вони вказуються в дужках при створенні.

def greet_person(name):  # name — це параметр (змінна-контейнер)
    print("Вітаю,", name, "! Приємного дня!")

# Викликаємо з різними аргументами:
greet_person("Олена")  # Надрукує: Вітаю, Олена ! Приємного дня!
greet_person("Богдан") # Надрукує: Вітаю, Богдан ! Приємного дня!
Формальний параметр:

Назва змінної у дужках при визначенні функції (name).

Фактичний аргумент:

Конкретне значення, яке ми підставляємо при виклику ("Олена").

Сходинка 3

Кілька параметрів

Параметрів може бути два, три або більше. Вони розділяються комами. Порядок має значення!

def show_sum(a, b):
    result = a + b
    print("Сума чисел", a, "і", b, "дорівнює:", result)

show_sum(10, 15) # a стане 10, b стане 15. Надрукує: 25
Сходинка 4 (ВАЖЛИВО!)

Різниця між `print()` та `return`

Це головне місце, де помиляються початківці!

  • print() — просто показує текст на екрані. Програма не може зберегти це значення або використати у подальших розрахунках.
  • returnповертає результат назад у головну програму, щоб його можна було зберегти у змінну!
❌ Приклад із print() (результат втрачається):
def add_bad(a, b):
    print(a + b)

x = add_bad(3, 4)
# x буде дорівнювати None!
# Ми НЕ можемо помножити x далі.
✅ Приклад із return (результат повертається):
def add_good(a, b):
    return a + b

x = add_good(3, 4) # x отримує 7
total = x * 2     # total отримує 14
print(total)     # Надрукує: 14

Запам'ятайте: Як тільки Python доходить до слова return, виконання функції миттєво припиняється!

Сходинка 5

Де видно змінні? (Scope / Область видимості)

1. Локальні змінні (Всередині)

Створені всередині функції. Існують тільки поки працює функція. Поза функцією до них звернутися неможливо (виникне помилка NameError).

2. Глобальні змінні (Зовні)

Створені в основному коді. Їх видно усюди. Але щоб змінити таку змінну всередині функції, потрібне ключове слово global.

score = 100 # Глобальна змінна (загальний рахунок гри)

def add_bonus():
    global score # Повідомляємо, що будемо змінювати саме зовнішній score
    score = score + 50

add_bonus()
print(score) # Надрукує: 150
Сходинка 6

Проста рекурсія (Функція викликає саму себе)

Рекурсія — це коли функція всередині свого коду викликає саму себе. Головне правило рекурсії: обов'язково має бути умова зупинки (базовий випадок), інакше програма зациклиться і видасть помилку!

Приклад: Зворотний відлік таймера (3... 2... 1... Старт!)
def countdown(n):
    if n <= 0:
        print("Старт! 🚀") # Базовий випадок: зупинка
    else:
        print(n)
        countdown(n - 1) # Рекурсивний виклик із меншим числом

countdown(3)
# Виведе у консоль:
# 3
# 2
# 1
# Старт! 🚀

Приклади з реальних програм

Подивіться, як функції спрощують розв'язання реальних завдань:

Приклад 1: Обчислення вартості квитка в кіно
def get_ticket_price(age):
    if age < 12:
        return 80  # Дитячий квиток
    else:
        return 150 # Дорослий квиток

price1 = get_ticket_price(10) # поверне 80
price2 = get_ticket_price(16) # поверне 150
print("Сума:", price1 + price2) # Надрукує: 230

Як це працює: Залежно від переданого віку функція повертає правильну ціну через return, і ми можемо додати їх в один чек.

Приклад 2: Генератор підпису до фото
def make_hashtag(tag):
    result = "#" + tag.lower()
    return result

print(make_hashtag("Python")) # Надрукує: #python
print(make_hashtag("School")) # Надрукує: #school

Як це працює: Вхідне слово перетворюється на малі літери та до нього додається символ `#`.

Закріплення знань на практиці

Розв'яжіть 6 простих крокових завдань для перевірки себе!

Ваш результат: 0 / 6
Завдання 1 • Основи Не виконано

За допомогою якого ключового слова в Python створюють власну функцію?

Завдання 2 • Читання коду Не виконано

Що надрукує ця програма під час виконання?

def double_number(x):
    return x * 2

result = double_number(7) + 3
print(result)
Завдання 3 • Розрізнення print та return Не виконано

Учень написав таку функцію, але змінна total отримує значення None. У чому помилка?

def calc_discount(price):
    print(price - 50)

total = calc_discount(200)
Завдання 4 • Область видимості (Global) Не виконано

Яке слово потрібно вставити на місці пропуску, щоб функція могла оновити значення зовнішньої змінної coins?

coins = 10

def add_coins(amount):
     coins
    coins = coins + amount

add_coins(5)
Завдання 5 • Базовий випадок у рекурсії Не виконано

У рекурсивній функції зворотного відліку пропущено умову зупинки. Виберіть правильний блок коду для першого рядка:

def count_down(n):
    # Що має бути тут?
        print("Фініш!")
    else:
        print(n)
        count_down(n - 1)
Завдання 6 • Проста практика коду Не виконано

Задача: Напишіть функцію multiply(a, b), яка приймає два числа та повертає результат їх множення за допомогою return.

Ваш підсумок тренування

Автоматична оцінка засвоєння матеріалу про функції

0%
0 з 6 виконано
Дайте відповіді на завдання вище, щоб отримати розгорнутий аналіз знань!