1. 迭代協議是指:物件必須提供乙個next方法,執行該方法要麼返回迭代中的下一項,要麼就引起乙個stopiteration的異常,以終止迭代(只能往前走,不能回退)
2. 可迭代物件:實現了迭代協議的物件(如何實現:物件內部定義乙個__iter__()方法 )
3.協議是一種約定,可迭代物件實現了迭代協議,python的內部工具for,sum,min,max函式使用迭代器訪問物件。
自己呼叫自己
遞迴和迭代的通俗舉例:
假設a 向甲,乙,丙,丁問路
遞迴:a 問 甲 xx地怎麼去,甲 問 乙, 乙 問 丙,丙 問 丁。丁知道結果,開始返回。 丁 返回 丙,丙 返回 乙,乙 返回 甲,甲 返回 a.
迭代:a 問 甲 xx地怎麼去,甲 回覆 a 找 乙,乙 回覆 a 找 丙,丙 回覆 a 找 丁。丁反饋結果。
python中for迴圈機制:
字串,列表,元祖,字典集合,檔案物件 這些物件都是不是可迭代物件,只不過在for迴圈模式,呼叫了他們內部的__iter__()方法,把他們改變成了可迭代物件。
Python遞迴和迭代
遞迴 在函式內部,呼叫函式自身的程式設計技巧稱為遞迴 recursion 遞迴函式結構清晰,很直觀的理解計算過程,但也有嚴重缺點 相對於普通迴圈而言,遞迴執行效率較低,經過很多冗餘的計算,遞迴會消耗大量的呼叫堆疊。在計算機中,函式呼叫是通過棧 stack 這種資料結構實現的,每當進入乙個函式呼叫,棧...
Python遞迴和迭代
遞迴 在函式內部,呼叫函式自身的程式設計技巧稱為遞迴 recursion 遞迴函式結構清晰,很直觀的理解計算過程,但也有嚴重缺點 相對於普通迴圈而言,遞迴執行效率較低,經過很多冗餘的計算,遞迴會消耗大量的呼叫堆疊。在計算機中,函式呼叫是通過棧 stack 這種資料結構實現的,每當進入乙個函式呼叫,棧...
遞迴和迭代 迭代與遞迴
很多程式設計小白都會遇到 迭代 和 遞迴 的問題 包括我自己 大部分同學還是不知道迭代與遞迴的區別。下面我就嘗試用最通俗易懂的模式講解遞迴與迭代的區別。1.迭代 迭代其實很簡單,我們在程式設計中經常用到迭代。比如說 i 1 print i 這個就是乙個迭代,沒想到吧。迭代的意思其實就是在迴圈 現了參...