Как перевести десятичное число в двоичное на 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 шт):
вы просто написали много ненужного кода
a = int(input())
result = []
while a:
result.append(a % 2)
a //= 2
result.reverse()
print(result)
код ниже заходит в бесконечный цикл
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