python中的for循環底層原理詳解+python中for循環的原理


在這個博客中,我們將討論Python中循環的原理。
我們將從一組基本的例子及其語法開始,我們還將討論與循環相關的else代碼塊的有用性
然后我們將介紹迭代對象、迭代設備和迭代設備協議,並學習如何創建我們自己的迭代對象和迭代設備。
之后,我們將討論如何使用迭代對象和迭代實現來實現循環,而使用循環通過迭代設備協議來實現循環邏輯。
最后,我們將為循環反編譯一個簡單程序,並逐步介紹Python解釋器在為循環執行時執行的指令,以滿足每個人的好奇心。這些有助於理解用於循環運行時的內部工作原理。
蟒蛇給循環的
For語句是Python中執行迭代,的兩個語句之一,另一個語句是while。如果您不熟悉Python的迭代,·迭代:那么Python中的while、break和continue語句是一個很好的起點。
在Python中,for 循環用於遍歷迭代對象的所有元素。循環語句段對迭代對象的每個元素項執行一次。目前,我們可以把迭代物體想象成一個物體的集合,我們可以一個接一個地遍歷其中的元素。我們將在下一節詳細解釋迭代和迭代物體。
簡單的循環
讓我們從一個簡單的for 循環,開始,因為再調用小發貓API時,需要循環判斷狀態,它遍歷字符串列表並打印每個字符串。
正如你所看到的,這個循環實際上把列表中的每一個單詞都檢查了一遍並打印出來。換句話說,在循環,的每次遍歷中,變量字被指定為列表中的一個元素,然后執行for語句中的代碼塊。因為列表是元素的有序序列,所以循環以相同的順序遍歷這些元素。
為循環加上其他條款
對於循環,Python中可以選擇是否關聯一個else子句。else子句中的代碼塊在for 循環完成之后開始執行,也就是說,在遍歷了迭代對象中的所有元素之后。現在讓我們看看如何擴展前面的例子,以包括一個else條件(子句)。
else條款什么時候適用?
正如你所注意到的,else子句在for 循環完成后執行。其他代碼塊是什么意思?這份聲明不是在對循環執行了同樣的方式之后嗎?我們經常遇到這樣一種情況,當某些條件得到滿足時,循環半途而廢。如果不滿足這個條件,則希望執行另一組語句。我們通常使用布爾-type標記實現,下面是一個例子。
通話結果:
對於其他代碼塊,我們可以避免使用布爾類型標記found _ item。讓我們看看如何使用else子句重寫上述方法。注意:如果循環的break語句被觸發,else塊將被跳過。
因此,else代碼塊適用於循環,有break語句的情況,我們希望在break條件未觸發時執行一些語句。
否則,與else相關的語句只能在循環的末尾執行。當您在本文的最后一節查看反編譯的字節碼時,您會看到這一點。
循環語法
我們已經看到了一些簡單的例子,我們將用循環的語法來結束這一節
基本上,set _ of _ statements _ 1是為iterable中的每個元素執行的。一旦所有元素被迭代,控制器將跳轉到else代碼塊來執行set _ of _ statements _ 2。
請注意,else子句是可選的。如果找不到else子句,當遍歷完所有元素並且控制器在程序后轉到語句時,循環結束。
迭代對象和迭代器
迭代對象
在上一節中,我們使用了術語iteratable來表示循環中的迭代對象。現在,讓我們試着理解Python中的iteratable對象是什么。
在Python中,迭代對象指的是可以為循環迭代的任何對象。這意味着當這個對象作為參數傳遞給iter()方法時,應該返回一個迭代器。讓我們看一些Python中常用的內置迭代的例子。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM