返回失败,尽管有条件工作的其他所有情况

时间:2018-12-06 03:07:08

标签: python-2.7 return conditional

我编写了一个简单的递归函数来测试a是否为b的幂。

def is_power(a, b):
""" returns True if a is a power of b"""
    if a == b:
        print('True!')
        return True
    elif a%b != 0:
        return False
    elif a != b and a%b == 0:
        is_power(a/b, b)

当我在应该返回True的情况下运行它时,即使它从与return语句相同的if语句执行其他命令,也不会返回任何内容。

  

is_power(8,2)   没错!

我认为我正在做一些愚蠢的事情/错过了一些显而易见的事情。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

最后一个选择是缺少“返回”

答案 1 :(得分:0)

确保像这样返回is_power(a / b,b):

def is_power(a, b): 
    if a == b:
        return True
    elif a%b != 0:
        return False
    elif a != b and a%b == 0:
        return is_power(a/b, b)

print(is_power(9,2))