python-3.x 不使用**计算指数的迭代函数

k5hmc34c  于 2023-02-26  发布在  Python
关注(0)|答案(3)|浏览(139)

我需要写一个程序,我写了一个迭代函数,在我的程序中不使用**运算符来计算以 * 为底的指数。
我已经尝试了我已经创建的代码,但不确定如何修复我的错误“int”对象是不可调用的。

def iterPower (base, exp):
    """Run a program in which the base multiplies itself by the exponent value"""
    exp = 3
    for n in base(exp):
        exp *= base
    return exp

base = 5
exp = 3

print(iterPower(5,3))

预期结果将是答案125,但由于我的错误,我没有得到任何数字。

e3bfsja2

e3bfsja21#

您需要将base * baseexp相乘:

def iterPower (base, exp):
    """Run a program ion which the base multiplies itself by the exponent value"""
    n = base
    for _ in range(1, exp):
        n *= base
    return n

结果:

>>> iterPower(5, 3)
125
>>> 5**3
125
yvfmudvl

yvfmudvl2#

你传递的是整数,所以你不能像base(exp)那样调用5(3),尝试使用for n in range(exp),它会给予你想要的迭代次数。

polhcujo

polhcujo3#

下面是使用“While”循环的答案:

result = 1
while exp > 0:
    result *= base
    exp -= 1
return result

相关问题