Как перевести десятичное число в двоичное на python?

Хочу написать алгоритм по переводу числа из десятичной сс в двоичную, но столкнулся с проблемой - код ниже заходит в бесконечный цикл. Если помните, нужно делить число на 2. Весь алгоритм писать не нужно, опишите проблему и её решение кода ниже

a = int(input())

x = []
integer = []
result = []

x = list(str(a))[::-1]


while True:
    if a != 1 and a != 0:
        if a % 2 == 0:
            result.append(0)
            a = a / 2
        elif a % 2 == 1:
            result.append(1)
            a = a / 2
    else:
        False

Ответы (2 шт):

Автор решения: splash58

вы просто написали много ненужного кода

a = int(input())
result = []

while a:
    result.append(a % 2)
    a //= 2
result.reverse()
print(result)
→ Ссылка
Автор решения: Blank

код ниже заходит в бесконечный цикл

else:
    False

Данный код не завершает цикл, а просто вызывает значение False. Чтобы завершить цикл нужно либо использовать оператор break, либо в условии использовать переменную и заменить её значение на False для прекращения работы цикла.

1 способ завершения цикла **

a = True
while a:  # пока a is True 
    if False:
        pass
    else:
        a = False

2 способ

While True:
    If False:
        pass  # пропустить
    else:
        break  # завершение цикла

Также a = a / 2 будет возвращать дробное значение и условие a == 1 или a == 0 никогда не выполнится.

Вот работающий код:

a = int(input())
    
x = []
integer = []
result = []
    
x = list(str(a))[::-1]
    
    
while True:
    if a != 0:
        if a % 2 == 0:
            result.append(0)
            a = a // 2
        elif a % 2:
             result.append(1)
             a = a // 2
    else:
        result.reverse()
        print(result)
        break
→ Ссылка