В алгоритме есть пункт “строится троичная/семеричная запись числа N”.
Иными словами, любая система счисления кроме двоичной.
Объяснение функции:
def my_convert(number: int, system: int) -> str:
- объявление функцииmy_convert
, которая принимает два аргумента:number
(число, которое нужно конвертировать) иsystem
(система счисления, в которую нужно выполнить конвертацию). Функция возвращает строку.alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
- создается переменнаяalphabet
, которая содержит символы, используемые для представления чисел в различных системах счисления. Они отсортированы по порядку, чтобы обеспечить правильный порядок при конвертации.result = ''
- переменная, в которой будет храниться результат конвертации. Изначально она пустая.while number > 0:
- начало циклаwhile
, который будет выполняться до тех пор, пока значениеnumber
больше нуля.result += alphabet[number % system]
- добавляется символ кresult
, который соответствует остатку от деленияnumber
наsystem
. Это позволяет выяснить, какой символ нужно использовать для представления остатка.number //= system
- операция целочисленного деленияnumber
наsystem
. Она уменьшает значениеnumber
, переводя его к меньшему разряду в соответствии с выбранной системой счисления.return result[::-1]
- возвращается результат конвертации. Однако, поскольку символы были добавлены в обратном порядке (с меньшего разряда к большему), строкаresult
разворачивается при помощи среза[::-1]
, чтобы получить правильный порядок символов
def my_convert(number: int, system: int) -> str:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
result = ''
while number > 0:
result += alphabet[number % system]
number //= system
return result[::-1]