Перевод чисел из десятичной системы счисления в двоичную

Один из алгоритмов получения двоичного числа из десятичного можно описать следующим образом:

  1. Исходное десятичное число делится на два (основание двоичной системы счисления).
  2. В одну переменную записывается частное в виде целого числа, в другую – остаток в виде строки (если остатка нет, то записывается ноль).
  3. Если частное не было равно нулю, то оно снова делится на два. Переменная, связанная со старым частным связывается с новым (прежнее частное теряется). Новый остаток с помощью операции конкатенации добавляется в начало строковой переменной, где хранятся остатки.
  4. П. 3 продолжает повторяться до тех пор, пока частное не станет равно нулю.
  5. Остатки от деления, записанные в обратном порядке, представляют собой двоичное представление заданного десятичного числа.

x = int(input("Введите натуральное число: "))
n = ""
 
while x > 0:
    y = str(x % 2)
    n = y + n
    x = int(x / 2)
 
print (n)

docs.python.org/library/funct

docs.python.org/library/functions.html#bin

А теперь попробуйте перевести

А теперь попробуйте перевести в 9- или 17-ричную систему исчисления.

Приведенный пример (после замены 2 на соответствующее основание) с задачей справляется.

Правда, для основания большего 10 необходимо будет ввести список отображаемых букв и в `y` записывать букву в этом списке на позиции x % 2

О да, это все меняет ) >>> a

О да, это все меняет )

>>> a = 9
>>> a = bin(a)
>>> a
'0b1001'

Да, но при этом x должен

Да, но при этом x должен представлять собой строковое представление двоичного числа (например, '101'). Результатом будет десятичное число (например, 5).

Функция int не переводит число в указанную вторым аргументом систему счисления. Наоборот, она всегда возвращает десятичное целое число, равное числу в строковом представлении в первом аргументе, предварительно преобразовав его из указанной системы счисления в десятичную систему.