def from_base(number: tuple, base: int) -> int:
'''Перевод числа из системы исчисления с основанием base'''
return sum([n*base**e for e, n in enumerate(number[::-1]) ])
def to_base(number: int, base: int) -> tuple:
'''Перевод числа в систему исчисления с основанием base'''
result = list()
while number != 0:
number, n = divmod(number, base)
result.append(n)
result.reverse()
return tuple(result)
print(to_base(123, 3)) # перевод числа 123 в троичную систему, результат будет (1, 1, 1, 2, 0), результатом является кортеж, в котором числа обозначают "численное значение цифр", это необходимо т.к. нет например цифры 10, есть число 10 состоящие из цифры 1 в разряде десятков и 0
#если нужна запись числа, то максимум могу дать вот эту функцию, но она будет печатать числа только в системах исчисления, не превышающих 36
def write_num_on_base(number, base):
alphabet = {i:e for i,e in enumerate('0123456789abcdefghijklmnopqrstuvwxyz')}
return ''.join([alphabet[n] for n in to_base(number, base)])