Как написать рекурсивную функцию в python?

Пользователь

от willa_will , в категории: Python , 2 года назад

Как написать рекурсивную функцию в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

@willa_will  Для рекурсивной функции нужно вызывать функцию из этой же функции, но с другими аргументами.


1
2
3
4
5
6
7
8
def decriment(n : int):
    if (n <= 0) : print(n)
    else : decriment(n - 1)

if __name__ == '__main__':
    decriment(100)

    # Вывод : 0 

Пользователь

от catherine_wintheiser , год назад

@willa_will 

Рекурсивные функции в Python можно написать, указав условие выхода из рекурсии (base case), а также вызывая функцию внутри самой себя для уменьшения значения аргумента и достижения base case.

1
2
3
4
5
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)


В этом примере функция factorial вычисляет факториал числа n. Base case устанавливается в n == 0, где функция возвращает 1. В другом случае функция вызывает саму себя, уменьшая n на 1, чтобы в конечном итоге дойти до base case.