¿Existe una buena biblioteca de python que pueda convertir los números en sus “símbolos” respectivos?

0 = 0 1 = 1 ... 9 = 9 10 = a 11 = b ... 35 = z 36 = A 37 = B ... 60 = Z 61 = 10 62 = 11 ... 70 = 19 71 = 1a 72 = 1b 

No sé cómo se llama esto. Base algo?

Todo lo que quiero es una función que pueda convertir los números en estos, y estos de nuevo a números.

¿Hay una función fácil que puede hacer esto?

Puede heredar números.

 def baseN(base,alphabet='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'): class _baseN(numbers.Number): digits=alphabet[:base] def __init__(self,value): if isinstance(value,int): self.value=value if self.value==0: self.string='0' else: tmp=[abs(value)] while tmp[0]!=0: tmp[:1]=divmod(tmp[0],base) tmp=[alphabet[i] for i in tmp] tmp[0]='-' if self.value<0 else '' self.string=''.join(tmp) elif isinstance(value,str): assert(value.isalnum()) self.string=str(value) self.value=0 for d in value: self.value=self.value*base+self.digits.index(d) else: self.value=0 self.string='0' def __int__(self): return self.value def __str__(self): return self.string def __repr__(self): return self.string def __add__(self,another): return self.__class__(self.value+int(another)) return None if base>len(alphabet) else _baseN 

Encontré otro error. Cambie a una función de fábrica. Ahora puede manejar la situación general.

 >>> int("a", 36) 10 >>> int("z", 36) 35 >>> int("10", 36) 36 

La otra dirección es más complicada, pero pruebe esta receta de ActiveState .

Normalmente las conversiones de base no hacen distinción entre casos. No estoy seguro de cómo extender esto completamente para hacer esa distinción, pero la receta debería darle un comienzo.