Python教程 for迴圈本質

2022-06-18 03:42:10 字數 777 閱讀 7873

我們先來看一下for迴圈的一些簡單應用:

ls=[1,2,3]

for i in ls:

print(i)

我們知道這樣可以遍歷地取出這裡面的每乙個元素,但是它的工作原理,我們都是模模糊糊的大概知道是那個樣子。其實for迴圈的工作流程是基於迭代器協議的。為明白他的整個工作流程,我們不得不先看一下迭代器協議。

迭代器協議

2.迭代器:實現了迭代器協議的物件(如何實現:物件內部定義乙個__iter__()方法)

3.協議是一種約定,可迭代物件實現了迭代器協議,python的內部工具(如for迴圈,sum,min,max函式等)使用迭代器協議訪問物件。

注:可以通過__next__取值,就是迭代器

我們接下來就看看,for迴圈的具體工作過程:

for 迴圈在處理這些資料前,會呼叫 __ iter__() 方法,將這些資料轉化為乙個迭代器,然後呼叫迭代器的 __ next__() 方法,並捕獲stopiteration異常,也就實現了遍歷完所有資料就會結束,並不會丟擲這個異常。

我們可以用下面的**來實現for迴圈的功能:

'''

'''x=[1,2,3]

x_i=x.__iter__()

try:

while true:

print(x_i.__next__())

except stopiteration:

pass

python中for迴圈的本質

對於使用python的小夥伴來說,for迴圈絕對不會陌生,它頻繁地出現在 當中,為我們對無論是檔案還是序列進行修改,讀取都提供了方便,對for的熟練使用可以說是我們python學習者必備的乙個技能了,但小夥伴們用了這麼久到底是否真的了解for迴圈呢,是否真正熟絡for迴圈內部的執行呢?進入正題,下面...

Python for迴圈本質

我們先來看一下for迴圈的一些簡單應用 ls 1 2,3 for i in ls print i 我們知道這樣可以遍歷地取出這裡面的每乙個元素,但是它的工作原理,我們都是模模糊糊的大概知道是那個樣子。其實for迴圈的工作流程是基於迭代器協議的。為明白他的整個工作流程,我們不得不先看一下迭代器協議。迭...

python教程 分支 迴圈

講程式設計,不得不講到順序 分支 迴圈。順序就是從上到下執行 這個很簡單,不用再說了。在講分支 迴圈的時候,要特別注意python 中的強制縮排。我們先看看分支 1 簡單的if else python 1.a 1 2.if a 1 注意後面有乙個冒號。其中 是相等判斷 3.print 1 注意pri...