Шаг 121.
Основы языка Python.
Пользовательские функции. Рекурсия. Вычисление факториала

    На этом шаге мы рассмотрим понятие рекурсии и в качестве примера - вычисление факториала числа.

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

def factorial(n):
    if n == 0 or n == 1: return 1
    else:
        return n * factorial(n - 1)

while True:
    x = input("Введите число: ")
    if x.isdigit(): # Если строка содержит только цифры
        x = int(x) # Преобразуем строку в число.
        break # Выходим из цикла
    else:
        print("Вы ввели не число!")

print("Факториал числа {0} = {1}".format(x, factorial(x)))
Архив с файлом можно взять здесь.

    Результат выполнения примера приведен на рисунке 1.


Рис.1. Результат работы приложения

    Впрочем, проще всего для вычисления факториала воспользоваться функцией factorial() из модуля math. Пример:

>>> import math
>>> math.factorial(5), math.factorial(6)
(120, 720)

    На следующем шаге мы рассмотрим глобальные и локальные переменные.




Предыдущий шаг Содержание Следующий шаг