好的,让我先说是这是功课.但我有答案(玩它直到它工作)我的问题更多关于"如何"让老师多次解释(在线课程),但我只是没有得到它,希望有人在这里更擅长以我对他们的看法来解释事物.
这是作业:
编写一个函数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)
Run Code Online (Sandbox Code Playgroud)
第一件事是exp = 0然后返回为1的部分....我不明白为什么会有任何回复1.第二是如果代码的最后部分,如果没有循环,exp在哪里下降1 ?