#python
#python
Вопрос:
Я пытаюсь изменить десятичные числа на двоичные числа без использования bin. В цикле while я изначально использовал «n // 2» вместо «n//=2», и когда я запускаю файл, программа останавливается. В чем разница??
n=int(input("Enter a numbern"))
res=""
while n >= 1:
res = res str(n % 2)
n //= 2
print(int(res[::-1]))
Комментарии:
1.
//=
используется для расширенного оператора присваивания ;//
является оператором .
Ответ №1:
n //= 2
то же n = n // 2
самое, что .
Причина, по которой ваша программа остановилась при использовании n // 2
, заключается в том, что вы никогда ничего не присваивали обратно n
, поэтому n
никогда не становилось < 1, поэтому вы застряли в цикле навсегда.
Ответ №2:
n // 2 — это просто оператор, в то время как цикл считается условием значения n . n //2 не изменит исходное значение n, поэтому, если исходное значение n >= 1, оно может экранироваться, иначе оно застрянет навсегда