Перейти до основного вмісту
Модуль 5 · Урок 1 із 417/36 у курсі~12 min
Модульні уроки (1/4)

de і return

Функція – це багаторазовий блок коду: ви визначаєте його один раз за допомогою def, потім дзвоніть стільки разів, скільки хочете. Функції роблять код модульним, перевіряється та самодокументується.

Основний синтаксис

Python
def saluta(nome):
    return f"Ciao, {nome}!"

saluta("Ada")     # 'Ciao, Ada!'
  • def представляє функцію, а потім назву та параметри в дужки.
  • : відкриває блок із відступом.
  • return надсилає значення назад абоненту та завершує функцію.

Явний return проти неявного None

Якщо ви не пишете return, функція повертає None неявно:

Python
def stampa_e_basta(x):
    print(x)

risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato)   # None

Голий return (без значення) також повертає None, але він може служити раннім вихід:

Python
def primo_pari(nums):
    for n in nums:
        if n % 2 == 0:
            return n
    return None   # explicit: communicates "not found"

Кілька значень? Повернути кортеж

Python не має «вихідних параметрів»: щоб повернути більше одного елемента, поверніть a кортеж (часто розпакований абонентом).

Python
def divisione_resto(a, b):
    return a // b, a % b

quoziente, resto = divisione_resto(17, 5)
# 3, 2

Docstring: вбудована документація

Першим рядком у функції є docstring: він відображається в help(fn) та як спливаючу підказку в IDE.

Python
def area_cerchio(raggio):
    """Calcola l'area di un cerchio dato il raggio."""
    import math
    return math.pi * raggio ** 2

Область: локальні змінні

Змінні, визначені всередині функції, є локальними: вони не існують назовні.

Python
def f():
    x = 10
    return x

f()    # 10
x      # NameError: name 'x' is not defined

Функції завжди щось повертають

У Python, якщо функція явно не оголошує оператор return або містить порожній return, вона неявно повертає спеціальне значення None. Немає функцій, які не повертають значення.

Спробуйте

вправи#python.m5.l1.e1
Спроби: 0Завантаження…

Визначте функцію "double(x)", яка повертає "x * 2". Потім викликайте його за допомогою 7 і призначте результат до `result`. Оцініть `результат`.

Завантаження редактора…
Показати підказку

Використовуйте return x * 2.

Рішення доступне після 3 спроб

Повторна вправа

вправи#python.m5.l1.e2
Спроби: 0Завантаження…

Визначте `min_max(nums)`, який повертає кортеж `(minimum, maximum)`. Викличте його на `[3, 1, 4, 1, 5, 9, 2, 6]` і розпакуйте результат у `mn, mx`. Обчисліть `(mn, mx)`.

Завантаження редактора…
Показати підказку

повернути min(nums), max(nums)

Рішення доступне після 3 спроб

Додатковий виклик

вправи#python.m5.l1.e3
Спроби: 0Завантаження…

Визначте функцію \`is_palindrome(text)\`, яка повертає \`True\`, якщо вхідний рядок дорівнює його зворотній версії, і \`False\` в іншому випадку. Перевірте функцію за допомогою \`is_palindrome("radar")\` як останнього виразу.

Завантаження редактора…
Показати підказку

Використовуйте фрагментований текст[::-1], щоб перевернути рядок і порівняти його з вихідним текстом.

Рішення доступне після 3 спроб