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

Зачем нужны функции?

Параметр — это имя в определении. Аргумент — значение, переданное при вызове. Разница между ними — фундамент всего, что будет дальше.

Зачем нужны функции?

Каждый раз делаем что-то новое!

Функция без входных данных всегда делает одно и то же. Чтобы функция вела себя по-разному в зависимости от ситуации, ей передают аргументы — значения в скобках при вызове:

argumenty.py
def privetstvie(imya):
    print(f"Привет, {imya}!")

privetstvie("Ада")
privetstvie("Cartesian")

Параметр vs аргумент — точное различие

Эти два слова легко перепутать, но у них разные роли:

Где встречаетсяЧто это
Параметрв определении: def privetstvie(imya):локальное имя внутри функции
Аргументв вызове: privetstvie("Ада")объект/значение, переданное при вызове
"Ада" (аргумент)imya (параметр)
Аргумент из места вызова становится значением параметра внутри функции

Параметры — это локальные имена

Продолжим уже знакомую модель «имя указывает на объект» (глава 3): вызов функции создаёт новую привязку параметра к переданному объекту:

imya"Ада"
Внутри вызова privetstvie("Ада") имя imya указывает на переданный объект
«Передача по значению» и «по ссылке» — вводят в заблуждение
Не думайте о Python как о языке, где «всё передаётся по ссылке» или «всё передаётся по значению» — обе формулировки слишком неточны и здесь не нужны. Точнее так: при вызове функции её параметры привязываются к тем же объектам, что и переданные аргументы — та же модель «имя → объект», что мы используем с самой главы 3. Иногда это называют call by sharing, но специальный термин запоминать не обязательно — важна сама модель.

Без аргументов?

Функция без параметров в скобках — например, privetstvie() из §13.2 — тоже совершенно нормальна: не каждой функции нужны входные данные.

Практика: параметр vs аргумент
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →