Python elegant inverse function of int(string,base)

后端 未结 11 854
谎友^
谎友^ 2020-11-28 06:01

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

int(string,base)

im looking for an elegant inver

11条回答
  •  一生所求
    2020-11-28 06:13

    review this.

    def int2str(num, base=16, sbl=None):
        if not sbl:
            sbl = '0123456789abcdefghijklmnopqrstuvwxyz'
        if len(sbl) < 2:
            raise ValueError, 'size of symbols should be >= 2'
        if base < 2 or base > len(sbl):
            raise ValueError, 'base must be in range 2-%d' % (len(sbl))
    
        neg = False
        if num < 0:
            neg = True
            num = -num
    
        num, rem = divmod(num, base)
        ret = ''
        while num:
            ret = sbl[rem] + ret
            num, rem = divmod(num, base)
        ret = ('-' if neg else '') + sbl[rem] + ret
    
        return ret
    

提交回复
热议问题