Форум сайта python.su
есть скрипт который выводит числа фибоначчи, почему в последней строчки при присвоение a,b=b,a+b где a+b все равно a равно 0 , вот здесь же a,b=b передается значение 1?
a,b=0,1
while b<10:
print b,
a,b=b,a+b
1
1
2
3
8
Отредактировано (Сен. 9, 2009 10:39:30)
Офлайн
потому что 0+1=1
Офлайн
Dimka665a,b=b,a+b тогда почему b=1 а не 2 если a=1+b=1
потому что 0+1=1
Офлайн
Malinaizerне понятно почему вот в этой части a+b “a” все еще равно 0Dimka665a,b=b,a+b тогда почему b=1 а не 2 если a=1+b=1
потому что 0+1=1
Отредактировано (Сен. 9, 2009 11:03:00)
Офлайн
a,b=b,a+b - вот где собака порылась
PS:
a=b
b=a+b
Отредактировано (Сен. 9, 2009 11:25:33)
Офлайн
yashamhurтак это понятно, просто если a,b=b то a,b=1 а вот a+b это 0+1 почему так если “a” уже ссылается на “b”
a,b=b,a+b - вот где собака порылась
Отредактировано (Сен. 9, 2009 11:35:08)
Офлайн
>почему a=b b=a+b, не равно, a,b=b,a+b
По тому что в первом случае а меняет своё значение, а во втором оно остаётся первоначальным.
Офлайн
Rodegastспасибо!
>почему a=b b=a+b, не равно, a,b=b,a+b
По тому что в первом случае а меняет своё значение, а во втором оно остаётся первоначальным.
Офлайн
я и говорю - способ записи
Rodegast- на самом деле “а” похоже меняет свое значение и во втором, но при такой записи “a,b=b,a+b” это происходит после присваивания b=a+b
По тому что в первом случае а меняет своё значение, а во втором оно остаётся первоначальным.
Отредактировано (Сен. 9, 2009 12:19:56)
Офлайн
просто “b, a+b” - это укороченная запись кортежа (b, a+b)
a, b = b, a+b - тоже самое, что и
ab = (b, a+b)
a = ab
b = ab
Отредактировано (Сен. 10, 2009 13:24:04)
Офлайн