Возврат не удался, несмотря на все остальное в условной работе - PullRequest
0 голосов
/ 06 декабря 2018

Я написал простую рекурсивную функцию, чтобы проверить, является ли 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, он ничего не возвращает, даже если он выполняет другие команды из того же оператора if, что и оператор возврата.

is_power (8,2) Верно!

Я предполагаю, что делаю что-то глупое / упускаю что-то ослепительно очевидное.Кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Убедитесь, что вы возвращаете 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))
0 голосов
/ 06 декабря 2018

Последняя альтернатива отсутствует 'return'

...