第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python楊輝三角涉及到的生成器執(zhí)行順序問題

python楊輝三角涉及到的生成器執(zhí)行順序問題

秋水丶 2016-11-08 20:57:54
def?triangles(): ?b?=?[1] ????while?True: ????????yield?b ????????b?=?[1]?+?[b[i]?+?b[i+1]?for?i?in?range(len(b)-1)]?+?[1] n?=?0 for?t?in?triangles(): ????print(t) ????n?=?n?+?1 ????if?n?==?10: ????????break看了相關資料 遇到y(tǒng)ield語句返回,那么只輸出第一行的話,程序是執(zhí)行b = [1] 一直往下到了yield b 就會返回嗎?進行第二行的時候 是順著剛才yield b 的下一句即b?=?[1]?+?[b[i]?+?b[i+1]?for?i?in?range(len(b)-1)]?+?[1]執(zhí)行嗎?小白對于這個函數不斷執(zhí)行的順序有點暈,請大神不吝賜教,謝謝。
查看完整描述

1 回答

?
原來我叫小土慕課網給我改了名字

TA貢獻2條經驗 獲得超1個贊

yield使函數triangles返回一個迭代器,每次遍歷的時候執(zhí)行函數。執(zhí)行流程為:

迭代1:b=[1] ?yield=b

迭代2:?b?=?[1]?+?[b[i]?+?b[i+1]?for?i?in?range(len(b)-1)]?+?[1] ? ?yield=b

迭代3:b?=?[1]?+?[b[i]?+?b[i+1]?for?i?in?range(len(b)-1)]?+?[1] ? ?yield=b

。。。


在 for 循環(huán)執(zhí)行時,每次循環(huán)都會執(zhí)行 ?函數內部的代碼,執(zhí)行到 yield b 時,fab 函數就返回一個迭代值,下次迭代時,代碼從 yield b 的下一條語句繼續(xù)執(zhí)行,而函數的本地變量看起來和上次中斷執(zhí)行前是完全一樣的,于是函數繼續(xù)執(zhí)行,直到再次遇到 yield。

查看完整回答
反對 回復 2016-11-08
  • 秋水丶
    秋水丶
    謝謝,也就是說while true:在不停的循環(huán) 里面的yield b則變成了每一次迭代的分割點。最后那句 函數的本地變量看起來和上次中斷執(zhí)行前是完全一樣的 不太懂,本地變量是什么意思?。?/div>
  • 1 回答
  • 0 關注
  • 1925 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號