Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2009 10:32:21

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

есть скрипт который выводит числа фибоначчи, почему в последней строчки при присвоение 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)

Офлайн

#2 Сен. 9, 2009 10:36:00

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

потому что 0+1=1



Офлайн

#3 Сен. 9, 2009 10:43:26

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

Dimka665
потому что 0+1=1
a,b=b,a+b тогда почему b=1 а не 2 если a=1+b=1



Офлайн

#4 Сен. 9, 2009 10:50:52

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

Malinaizer
Dimka665
потому что 0+1=1
a,b=b,a+b тогда почему b=1 а не 2 если a=1+b=1
не понятно почему вот в этой части a+b “a” все еще равно 0



Отредактировано (Сен. 9, 2009 11:03:00)

Офлайн

#5 Сен. 9, 2009 11:23:56

yashamhur
От:
Зарегистрирован: 2009-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

a,b=b,a+b - вот где собака порылась

PS:
a=b
b=a+b



Отредактировано (Сен. 9, 2009 11:25:33)

Офлайн

#6 Сен. 9, 2009 11:31:36

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

yashamhur
a,b=b,a+b - вот где собака порылась
так это понятно, просто если a,b=b то a,b=1 а вот a+b это 0+1 почему так если “a” уже ссылается на “b”

почему a=b b=a+b, не равно, a,b=b,a+b



Отредактировано (Сен. 9, 2009 11:35:08)

Офлайн

#7 Сен. 9, 2009 11:41:09

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2732
Репутация: +  183  -
Профиль   Отправить e-mail  

помогите понять

>почему a=b b=a+b, не равно, a,b=b,a+b

По тому что в первом случае а меняет своё значение, а во втором оно остаётся первоначальным.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#8 Сен. 9, 2009 11:44:16

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

Rodegast
>почему a=b b=a+b, не равно, a,b=b,a+b

По тому что в первом случае а меняет своё значение, а во втором оно остаётся первоначальным.
спасибо!



Офлайн

#9 Сен. 9, 2009 11:45:18

yashamhur
От:
Зарегистрирован: 2009-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

я и говорю - способ записи

Rodegast
По тому что в первом случае а меняет своё значение, а во втором оно остаётся первоначальным.
- на самом деле “а” похоже меняет свое значение и во втором, но при такой записи “a,b=b,a+b” это происходит после присваивания b=a+b
и имеет тот же эффект, что и “b,a=a+b,b ”
т.е надо разделять строки, т.е. “явное лучше неявного” ..и т.д. и т.п. ….
вывод : не мучайте питона! :)



Отредактировано (Сен. 9, 2009 12:19:56)

Офлайн

#10 Сен. 10, 2009 13:23:28

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите понять

просто “b, a+b” - это укороченная запись кортежа (b, a+b)
a, b = b, a+b - тоже самое, что и
ab = (b, a+b)
a = ab
b = ab



Отредактировано (Сен. 10, 2009 13:24:04)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version