PYTHON. Функции и рекурсия

PYTHON. Функции и рекурсия. Функции — это такие участки кода, которые изолированы от остальнoй программы и выполняются только тогда, когда вызываются. Функции sqrt(), len() и print()  обладают общим свойством: они могут принимать параметры (ноль, один или несколько), и они могут возвращать значение (хотя могут и не возвращать). Например, функция sqrt() принимает один параметр и возвращает значение (корень числа). Функция print() принимает переменное число параметров и ничего не возвращает.

Покажем, как написать функцию factorial(), которая принимает один параметр — число, и возвращает значение — факториал этого числа.

Теперь можно написать функцию max3(), которая принимает три числа и возвращает максимальное их них.

Встроенная функция max() в Python  может принимать переменное число аргументов и возвращать максимум из них. Приведём пример того, как такая функция может быть написана.

Локальные и глобальные переменные. Внутри функции можно использовать переменные, объявленные вне этой функции.

Здесь переменной a присваивается значение 1, и функция f() печатает это значение, несмотря на то, что до объявления функции f эта переменная не инициализируется. В момент вызова функции f() переменной a уже присвоено значение, поэтому функция f() может вывести его на экран.

Такие переменные (объявленные вне функции, но доступные внутри функции) называются глобальными.

Рекурсия. 

Как мы видели выше, функция может вызывать другую функцию. Но функция также может вызывать и саму себя! Рассмотрим это на примере функции вычисления факториала. Хорошо известно, что 0! = 1, 1! = 1. А как вычислить величину n! для большого n? Если бы мы могли вычислить величину (n-1)!, то тогда мы легко вычислим n!, поскольку n!=n⋅(n-1)!. Но как вычислить (n-1)!? Если бы мы вычислили (n-2)!, то мы сможем вычисли и (n-1)!=(n-1)⋅(n-2)!. А как вычислить (n-2)!? Если бы… В конце концов, мы дойдем до величины 0!, которая равна 1. Таким образом, для вычисления факториала мы можем использовать значение факториала для меньшего числа. Это можно сделать и в программе на Python:

Подобный прием (вызов функцией самой себя) называется рекурсией, а сама функция называется рекурсивной.

Примечание: Функция sqrt() — квадратный корень. Использование: sqrt(x); Функция len() — длина списка. Использование: len(x)Факториалом числа n называется произведение всех натуральных чисел, меньше или равныx n. Факториал обозначается n!

n!=123(n1)n

 

Комментарии 2

Добавить комментарий