如何使用递归来产生权力之和?

Alw*_*ing 0 python

我试图只使用递归(并没有内置函数)编写一个函数,它消耗两个数字,x和y并产生总和

1 + x + x^2 + ... + x^(y-1) + x^y

请注意,我正在寻找一种使用for/while循环的方法,因为我还没有学习它们.到目前为止,我有以下功能:

def power_addition (x, y):
    i = 0
    if i < y:
        i = i+1
        return x**i + power_addition (x, y)
    else:
        return x**i
Run Code Online (Sandbox Code Playgroud)

据我所知,代码中断有一个特殊原因.

ins*_*get 6

def sum_of_powers(x,y):
    if y<=0: return 1
    return x**y + sum_of_powers(x,y-1)
Run Code Online (Sandbox Code Playgroud)