Модульні уроки (1/4)
de і return
Функція – це багаторазовий блок коду: ви визначаєте його один раз за допомогою def,
потім дзвоніть стільки разів, скільки хочете. Функції роблять код модульним,
перевіряється та самодокументується.
Основний синтаксис
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defпредставляє функцію, а потім назву та параметри в дужки.:відкриває блок із відступом.returnнадсилає значення назад абоненту та завершує функцію.
Явний return проти неявного None
Якщо ви не пишете return, функція повертає None неявно:
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # NoneГолий return (без значення) також повертає None, але він може служити раннім
вихід:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"Кілька значень? Повернути кортеж
Python не має «вихідних параметрів»: щоб повернути більше одного елемента, поверніть a кортеж (часто розпакований абонентом).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: вбудована документація
Першим рядком у функції є docstring: він відображається в
help(fn) та як спливаючу підказку в IDE.
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2Область: локальні змінні
Змінні, визначені всередині функції, є локальними: вони не існують назовні.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedФункції завжди щось повертають
У Python, якщо функція явно не оголошує оператор return або містить порожній return, вона неявно повертає спеціальне значення None. Немає функцій, які не повертають значення.
Спробуйте
Визначте функцію "double(x)", яка повертає "x * 2". Потім викликайте його за допомогою 7 і призначте результат до `result`. Оцініть `результат`.
Показати підказку
Використовуйте return x * 2.
Рішення доступне після 3 спроб
Повторна вправа
Визначте `min_max(nums)`, який повертає кортеж `(minimum, maximum)`. Викличте його на `[3, 1, 4, 1, 5, 9, 2, 6]` і розпакуйте результат у `mn, mx`. Обчисліть `(mn, mx)`.
Показати підказку
повернути min(nums), max(nums)
Рішення доступне після 3 спроб
Додатковий виклик
Визначте функцію \`is_palindrome(text)\`, яка повертає \`True\`, якщо вхідний рядок дорівнює його зворотній версії, і \`False\` в іншому випадку. Перевірте функцію за допомогою \`is_palindrome("radar")\` як останнього виразу.
Показати підказку
Використовуйте фрагментований текст[::-1], щоб перевернути рядок і порівняти його з вихідним текстом.
Рішення доступне після 3 спроб