Python elegant inverse function of int(string,base)

Posted by random guy on Stack Overflow See other posts from Stack Overflow or by random guy
Published on 2010-01-14T10:28:03Z Indexed on 2011/01/12 3:53 UTC
Read the original article Hit count: 197

Filed under:
|

python allows conversions from string to integer using any base in the range [2,36] using:

int(string,base)

im looking for an elegant inverse function that takes an integer and a base and returns a string

for example

>>> str_base(224,15)
'ee'

i have the following solution:

def digit_to_char(digit):
    if digit < 10: return chr(ord('0') + digit)
    else: return chr(ord('a') + digit - 10)

def str_base(number,base):
    if number < 0:
        return '-' + str_base(-number,base)
    else:
        (d,m) = divmod(number,base)
        if d:
            return str_base(d,base) + digit_to_char(m)
        else:
            return digit_to_char(m)

note: digit_to_char() works for bases <= 169 arbitrarily using ascii characters after 'z' as digits for bases above 36

is there a python builtin, library function, or a more elegant inverse function of int(string,base) ?

© Stack Overflow or respective owner

Related posts about python

Related posts about conversion