Глава 13 · Автоматизация с помощью функций

Нет аргументов? Слишком много аргументов!

Значения по умолчанию делают аргумент необязательным; *args принимает их сколько угодно.

Нет аргументов? Что делать!

Если вызвать функцию без обязательного аргумента, Python сообщит об ошибке. Чтобы аргумент можно было пропустить, ему задают значение по умолчанию:

znachenie_po_umolchaniyu.py
def privetstvie(imya="друг"):
    print(f"Привет, {imya}!")

privetstvie()          # Привет, друг!
privetstvie("Ада")     # Привет, Ада!

Слишком много аргументов!

Иногда заранее неизвестно, сколько аргументов понадобится передать. Символ * перед именем параметра собирает любое количество аргументов в один кортеж (глава 11):

args.py
def summa_vseh(*chisla):
    itog = 0
    for n in chisla:
        itog += n
    return itog

print(summa_vseh(1, 2))           # 3
print(summa_vseh(1, 2, 3, 4, 5))  # 15 — сколько угодно аргументов
Именованные аргументы
Аргументы можно передавать и по имени, а не только по порядку: privetstvie(imya="Ада") — это особенно удобно, когда у функции много параметров и легко перепутать порядок.
Практика в Jupyter Notebook
13-04-argumenty.ipynb · значения по умолчанию и *args
Открыть ноутбук →