Return 尽管条件工作中的其他一切都失败了

Return fails despite everything else in conditional working

我写了一个简单的递归函数来测试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)

当我 运行 它在一个应该 return 正确的情况下时,它没有 return 任何东西,即使它从与 return声明。

is_power(8,2) True!

我假设我在做一些愚蠢的事情/遗漏了一些非常明显的事情。有人可以帮忙吗?

缺少最后一个选项'return'

确保您返回 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))