为什么我的python函数返回none,如果我的每个案例都有一个返回值?

时间:2013-12-18 21:35:43

标签: python function python-2.7

我无法弄清楚为什么这不会返回!

我为每个分支都有回报......

提前致谢。

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)  

1 个答案:

答案 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周围使用“”三重双引号“”。