Теория:
Чтобы добавить в программный код функцию, созданную пользователем, нужно знать следующее.
- Заголовок функции начинается с оператора \(def\).
- Имя функции должно быть уникально и не встречаться в основной программе в виде имени переменных.
- Заголовок функции заканчивается двоеточием.
- В разделе <что делает функция> пишем набор инструкций, и он имеет отступ от написания \(def\).
- Функция \(return\) может вернуть результат, но это необязательно.
- Вызвать созданную функцию можно с любой строки программы.
Синтаксис функции.
\(def\) <имя функции> (<параметры, но необязательно>):
<что делает функция>
\(return\) <что возвращает (запоминает)>
<что делает функция>
\(return\) <что возвращает (запоминает)>
Напишем функцию, которая будет находить сумму двух чисел.
\(def\) \(sum(a,b):\)
\(return\) \(a+b\)
Функция вызывается внутри основной программы, например, так.
\(def\) \(sum(a,b):\)
\(return\) \(a+b\)
Функция вызывается внутри основной программы, например, так.

Рис. \(1\). Фрагмент программного кода

Рис. \(2\). Результат работы программы
Внутрь одной функции можно вложить ещё одну, такая функция будет называться вложенной.
Синтаксис вложенной функции.
\(def\) <имя функции\(1\)> (<параметры, но необязательно>):
<что делает функция\(1\)>
<что делает функция\(1\)>
\(def\) <имя функции\(2\)> (<параметры, но необязательно>):
<что делает функция\(2\)>
<что делает функция\(2\)>
\(return\) <что возвращает (запоминает)>
\(return\) <что возвращает (запоминает)>
Пример
Составь вложенную функцию вычисления факториала с проверкой правильности входного значения.

Рис. \(3\). Примерная программа

Рис. \(4\). Результат работы программы
Источники:
Рис. 1. Фрагмент программного кода. © ЯКласс.
Рис. 2. Результат работы программы. © ЯКласс.
Рис. 3. Примерная программа. © ЯКласс.
Рис. 4. Результат работы программы. © ЯКласс.