Comments from an answer to another question apply here to the commented function reverse_num
:
divmod
In Python, when you are performing arithmetic and are interested in both the quotient and the remainder of a division, you can use divmod
.
Magic numbers
You have 10
hardcoded in multiple places. My preference is to use a default argument giving the base to use.
def reverse(integer, base=10):
result = 0
while integer:
integer, r = divmod(integer, base)
result = base * result + r
return result
More specific comments
The documentation for
palindrome
is somewhat imprecise. It implies that it returns a number but it actually returns a tuple.num = num + rnum
can be re-writtennum += rnum
it may be interesting to memoize any result you compute so that you do not it to spend time to compute it later on. This needs some benchmarking to be sure this is relevant.