В чем разница между // и //= в python?

#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, оно может экранироваться, иначе оно застрянет навсегда