💻 Примеры

⚡ Кратко: примеры

Функция - именованный блок кода, который можно вызывать много раз.

def создаёт функцию, pass временно оставляет обязательный блок пустым.

При вызове функции позиционные аргументы сопоставляются по порядку, именованные - по названию параметра.

Аргументы по умолчанию пишутся после обязательных параметров.

*args собирает лишние позиционные аргументы в tuple, **kwargs - именованные аргументы в dict.

return завершает функцию и возвращает значение; без return результатом будет None.

LEGB описывает поиск имён: Local, Enclosing, Global, Built-in.

global нужен только для изменения глобальной переменной, но чаще лучше передавать данные параметрами.

Топ-3 ошибки: передавать не то количество аргументов; ожидать значение от функции, где нет return; менять global там, где достаточно параметров и return.

Конвертер температуры

Функция принимает значение и шкалу, затем возвращает строку результата.

def convert_temperature(temp, scale):
    if scale.upper() == "C":
        return f"{temp}C = {temp * 9 / 5 + 32}F"
    if scale.upper() == "F":
        return f"{temp}F = {(temp - 32) * 5 / 9}C"
    return "Unknown scale"

print(convert_temperature(100, "C"))

Фильтрация строк через *args

Список строк распаковывается в произвольное количество аргументов.

def filter_strings(min_len, *words):
    return [word for word in words if len(word) > min_len]

strings = ["apple", "banana", "cherry", "date", "fig"]
print(filter_strings(5, *strings))

Чистая функция вместо global

Параметры и return делают функцию независимой от внешнего состояния.

def calculate_area(width, height):
    return width * height

result = calculate_area(5, 10)
print(result)