def recursive_sum(n, total=0):
    if n == 0:
        return total
    return recursive_sum(n-1, total+n)
print(recursive_sum(3))
Функция recursive_sum(n, total=0) рекурсивно вычисляет сумму чисел от 1 до n.
Базовый случай: если n == 0, функция возвращает накопленную сумму total.
Рекурсивный случай: функция вызывает сама себя с аргументами n-1 и total+n, добавляя текущее значение n к сумме.
Вызов print(recursive_sum(3)) вернет 6, так как 1 + 2 + 3 = 6.
Задача: Реализовать рекурсивную функцию, вычисляющую сумму чисел от 1 до n.
Решение:
def recursive_sum(n, total=0):
    if n == 0:
        return total
    return recursive_sum(n-1, total+n)
print(recursive_sum(3))
  Разбор решения:
recursive_sum(n, total=0) принимает два аргумента:
    n: Целое число, определяющее верхнюю границу диапазона суммирования (от 1 до n).total: Аккумулятор суммы. По умолчанию равен 0.  Использование аккумулятора позволяет избежать переполнения стека вызовов для больших значений n.n равно 0, функция возвращает текущее значение total. Это условие завершает рекурсию.n не равно 0, функция вызывает саму себя с аргументами n-1 и total+n. Это добавляет текущее значение n к аккумулятору total и уменьшает n на 1 для следующего рекурсивного вызова.recursive_sum(3)
    recursive_sum(3, 0) -> recursive_sum(2, 3)recursive_sum(2, 3) -> recursive_sum(1, 5)recursive_sum(1, 5) -> recursive_sum(0, 6)recursive_sum(0, 6) -> 6print(recursive_sum(3)) выведет 6 (1 + 2 + 3).Дополнительно:
n все равно может возникнуть ошибка переполнения стека. В таких случаях лучше использовать итеративный подход.