Назначение нескольких значений

a, b, n = 0, 1, 500
while a < n:
    print(a)
    a, b = b, a+b  

а также

a, b, n = 0, 1, 500
while a < n:
    print(a)
    a = b
    b = a+b

Оба дают разный результат. В чем разница между a, b = b, a+b и a = b; b = a+b?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
41
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Приведенный ниже код похож на обмен.

a, b = b, a+b  

Это как делать это

temp = a
a = b
b = temp + b
a, b = b, a+b

эквивалентно

tmp = a
a = b
b = tmp+b

Это не значения, разделенные запятыми. Вы выполняете распаковку кортежа.

a, b, n = 0, 1, 500

Такой же как:

a, b, n = (0, 1, 500)

Причина, по которой они разные, заключается в том, что первая строка присваивает b значение a, а затем добавляет вместе a и b. Это по сути то же самое, что и:

a = b
b = a+b
Ответ принят как подходящий
a, b, n = 0, 1, 500
while a < n:
    print(a)
    a = b
    b = a+b

В приведенной выше строке кода - после печати (a) значение кода в переменной b будет присвоено первой, и, следовательно, значение a обновляется, и обновленное значение a используется в b = a + b

Допустим, а = 0, б = 1. Таким образом, после print(a) значение a сначала будет 1, а b будет иметь 1+1 = 2.

В то время как,

a, b, n = 0, 1, 500
while a < n:
    print(a)
    a, b = b, a+b

В приведенном выше коде после print(a) одновременно присваиваются значения a и b. В этом случае любое значение a, напечатанное в print(a), будет использоваться для присвоения значения a на следующем шаге.

Допустим, а = 0 и b = 1, после print(a), который сначала напечатает 0, значение в a будет 1, а значение в b будет 0+1 = 1, потому что b = a+b будет использовать a =0, ​​а не a =1.

Другие вопросы по теме