好的,让我首先说是的,这是家庭作业。但是我有答案(一直玩到它起作用)我的问题更多是关于“如何”我让老师多次解释它(在线课程)但我就是不明白,希望这里的人更擅长用我对事物的看法来解释事物。
这是作业:
编写一个函数recurPower(base, exp)
,该函数base**exp
通过递归调用自身来解决相同问题的较小版本,然后将结果乘以base
解决初始问题。
这个函数应该有两个值——base
可以是浮点数或整数;exp
将是一个整数≥0。它应该返回一个数值。您的代码必须是递归的 -**
不允许使用运算符或循环结构。
好的,所以经过几次反复试验(我的意思是几个小时的疯狂改变),我想出了正确的代码,它解决了正确的答案,但我不明白怎么做。
这是代码:
def recurPower(base, exp):
'''
base: int or float.
exp: int >= 0
returns: int or float, base^exp
'''
if exp <= 0:
return 1
return base * recurPower(base, exp - 1)
首先是 exp = 0 然后返回 1 的部分......我不明白为什么任何东西都会返回 1。其次是如果代码的最后部分,如果没有循环,exp 下降 1 ?