Уроки модуля (1/4)
защита и возвращение
функция — это повторно используемый блок кода: вы определяете его один раз с помощью 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 нет «выходных параметров»: чтобы вернуть более одного параметра, верните кортеж (часто распаковываемый вызывающей стороной).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: встроенная документация.
Первой строкой внутри функции является строка документации: она отображается в
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 и присвойте результат результату. Оцените «результат».
Показать подсказку
Используйте возврат x * 2.
Решение доступно после 3 попыток
Обзор упражнения
Определите `min_max(nums)`, который возвращает кортеж `(минимум, максимум)`. Вызовите его на `[3, 1, 4, 1, 5, 9, 2, 6]` и распакуйте результат в `mn, mx`. Оцените `(mn, mx)`.
Показать подсказку
вернуть мин(числа), максимум(числа)
Решение доступно после 3 попыток
Дополнительная задача
Определите функцию \`is_palindrome(text)\`, которая возвращает \`True\`, если входная строка равна ее перевернутой версии, и \`False\` в противном случае. Проверьте функцию, используя \`is_palindrome("radar")\` в качестве последнего выражения.
Показать подсказку
Используйте нарезку text[::-1], чтобы перевернуть строку и сравнить ее с исходным текстом.
Решение доступно после 3 попыток