我无法弄清楚为什么这不会返回!
我为每个分支都有回报......
提前致谢。
def recurPowerNew(base, exp):
'''
base: int or float.
exp: int >= 0
returns: int or float; base^exp
'''
if exp<=0:
return 1
elif exp%2==0:
return recurPowerNew(base*base, (exp/2))
return base*recurPowerNew(base, (exp-1))
print recurPowerNew(7.62,9)
答案 0 :(得分:8)
由于你的缩进,输入的最后一行是缩进的。
你应该修理它:
def recurPowerNew(base, exp):
"""
base: int or float.
exp: int >= 0
returns: int or float; base^exp
"""
if exp <= 0:
return 1
elif exp%2 == 0:
return recurPowerNew(base*base, (exp/2))
return base*recurPowerNew(base, (exp-1))
虽然我们在这里,但我想指出,根据PEP-257,使用双引号比单引号更好:
为保持一致性,请始终在docstrings周围使用“”三重双引号“”。