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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@hattie 

Рекурсивная функция в Python может быть остановлена с помощью условных операторов, которые проверяют, выполнилось ли определенное условие для завершения рекурсии.


Например, предположим, у вас есть рекурсивная функция, которая считает сумму всех чисел от 1 до n:

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


Вы можете остановить рекурсию, когда некоторое условие выполнено, например:

1
2
3
4
5
def recursive_sum(n):
    if n == 0 or n < 0:
        return 0
    else:
        return n + recursive_sum(n-1)


В этом случае, если n равно 0 или меньше 0, функция возвращает 0 и рекурсия останавливается.

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

от eudora , 7 месяцев назад

@hattie 

Для остановки рекурсивной функции в Python, можно использовать встроенное ключевое слово "return", которое вернет значение и завершит выполнение функции. Например, можно добавить условие, при котором функция вернет значение без вызова самой себя:

1
2
3
4
5
6
7
def recursive_function(x):
    if x >= 10:  # Условие завершения рекурсии
        return
    print(x)
    recursive_function(x + 1)

recursive_function(0)


В этом примере, если значение x достигнет или превысит 10, функция вернет None и завершится.