Есть ли хорошая библиотека python, которая может превращать числа в их соответствующие «символы»?

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 

Я не знаю, как это называется. База что-то?

Все, что я хочу, это функция, которая может преобразовывать числа в них, а это обратно в числа.

Есть ли простая функция, которая может это сделать?

2 Solutions collect form web for “Есть ли хорошая библиотека python, которая может превращать числа в их соответствующие «символы»?”

Вы можете наследовать числа. Номер:

 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 

Нашел еще один баг. Измените его на заводскую. Теперь можно справиться с общей ситуацией.

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

Другое направление более сложное, но попробуйте этот рецепт ActiveState .

Обычно конверсии базы не делают различий между случаями. Я не уверен, как полностью расширить это, чтобы сделать это различие, но рецепт должен дать вам начало.

Python - лучший язык программирования в мире.