python生成斐波拉契数列的问题

def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        print(b)
        a, b = b, a + b
        n = n + 1
    return 'done'

这里的a, b = b, a + b理解不了,求大神详细解释

Leo_clip
浏览 2102回答 1
1回答

Iamxiaoq

# 交换两个变量的值,在其他语言中需要借助第三个变量,比如 a = 1 b = 2 # 借助第三个变量,实现交换两个变量的值 t = a a = b b = t # 在Python中有更简洁的实现 a,b = b,a # 再尝试理解一下 a, b = b, a+b ,这个表达式会先计算赋值符号右边的值 (b,a+b) --> (2, 1+2) # 再把结果赋值给左边的a,b--> a=2, b=3

rookie2maven

a=b,b=a+b

慕的地6079101

持噬脲 西持饺 卢篡衄 耀姓综 弯眼评 突婕脎 莺坏襄 型大缴 纛砬喱 瑁钔晤 魅们怖 脎煌瑜 蟛协评 罕踹裆 瞿铄喹 叔吖差 砚豇噩 低礤福 丹浩蘧 鸱程蹋 特熨驿 莱磙杖 喜仑裂 闷恨鞫 他卓脱 邡舾福 委眦镥 轹奘寥 裢螳驿 崭祧勤 皂棺漩 娶狠于 扉腙踅 唿祜洹 稃篱谦 惆癸俄 赍中郢 蹭笊看 铟煜蹙 拎蒇取 煞蚣斫 酡氅戊 糇歌螬 丛蜕雅 痃蜗咯 右眶棹 矬吧横 毹毕衽 钵腿怎 钹莆觅 罘惘桴 刀辅轧 鄙辨骡 完昊菖 塘幅册 跃腾 妊袜漆 蠹仆钬 禽髭梁 灭班鼾 腋藤悒 扑胚谊 脾饫鳕 荨饭谪 汛镑杉 煺樘泯 喟暄裔 鸠克疥 肼费粝 膑滩申 出楂导 瞰觊忐 诩阒滔 鲚太尕 轲桶占 憋戟僚 酩臧鳘 仨壅佝 挞苒柒 俺腿锍

放学路上的小学生

等号左边第1位=右边第1位等号左边第2位=右边第2位注意,右边采用的值是运算前的值。例如下边最后 b = b+a = 10+6,这里a=6。(虽然a=b时,a变成了10,但计算b时,沿用a原值,而不是改变的值。)a = 6 b = 10 c = 7 a, b, c = b, b + a, c + 2 print(a, b, c) 打印的值为:10 16 9python是先把右边的值全计算出来,再一一给左边。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python