Теория:

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

\(return\) <что возвращает (запоминает)>
 
Пример
  
Составь вложенную функцию вычисления факториала с проверкой правильности входного значения.
 
p3.jpg
Рис. \(3\). Примерная программа
 
p4.jpg
Рис. \(4\). Результат работы программы
Источники:
Рис. 1. Фрагмент программного кода. © ЯКласс.
Рис. 2. Результат работы программы. © ЯКласс.
Рис. 3. Примерная программа. © ЯКласс.
Рис. 4. Результат работы программы. © ЯКласс.