как работает это строка return a * power(a, n - 1)?

Есть функция которая возводит числов степень с помощью рекурсии не могу понять как здесь работает рекурсия Как питон перемножает эти все числа,когда в функции 2 аргумента?? Вот код:

def power(a, n):
    if n == 0:
        return 1
    if n != 1:
        return a * power(a, n - 1)
        
a = int(input())
n = int(input())

print(power(a, n))

Ответы (1 шт):

Автор решения: Victor VosMottor

Загуглите рекурсия. А вкратце так:

return a * power(a, n - 1)

Bызывается power(a, n - 1), значение на выходе умножается на a и возвращается. В свою очередь при вызове power(a, n - 1) происходит тоже самое, пока не будет достигнуто условие:

if n == 0:
    return 1

i.e.:

power(4, 3) = 4 * power(4, 2) = 4 * (4 * power(4, 1)) = 4 * (4 * (4 * power(4, 0))) = 4 * 4 * 4 * 1 = 4³ = 64
→ Ссылка