Skip to content Skip to sidebar Skip to footer

Why Doesn't Python Return Booleans

I have this small function that takes two integers a and b and checks if a is b raised to some exponent. This is the code. def is_power(a,b): if not a%b==0: return a%b

Solution 1:

You are ignoring the return value of the recursive call, add a return there:

else:
    a = a/b
    return is_power(a,b)

Without the return statement there, your function just ends and returns None instead. The return value of the recursive call is otherwise ignored.

With the return statement, your code works:

>>>defis_power(a,b):...ifnot a%b==0:...return a%b==0...elif a/b==1:...return a/b==1...else:...        a = a/b...return is_power(a, b)...>>>print is_power(10, 3)
False
>>>print is_power(8, 2)
True

Solution 2:

You forgot to return on the last else clause.

Post a Comment for "Why Doesn't Python Return Booleans"