迭代器:
1.什麼是迭代器
指更新換代的過程,應用程式的公升級
可迭代器物件是指可以使用迭代器取出資料的物件
帶下劃線開頭和結尾的方法都是特殊的方法,會在特定時間執行
通過函式__iter__()來獲取迭代器
所有容器型別都可迭代,包括字串
2.如何使用
1.獲取迭代器呼叫__iter__()得到迭代器
2,通過__next__()方法來獲取每個值
檔案也是可迭代物件也是迭代器
3.呼叫iiter將返回迭代器本身
l=[1,2,3,4]
res=l.__iter__()
while true:
try:
print(res.__next__())
except:
print("stop it")
break
3.生成器
yield 可以多次產生資料
函式**現yield 該函式就是生成器
一旦函式**現了yield,呼叫函式時不會立即執行函式體,返回乙個生成器物件
在呼叫函式的__next__方法時。遇到yield會暫停,每一次呼叫next都是基於上一次yield的位置往下走
同時會把yield後的資料返回給呼叫者,生成器就是迭代器,具備iter和next函式,可以直接for迴圈來遍歷
print("start")
yield
print("over")
yield
k1=res.__next__()
print(k1)
k2=res.__next__()
print(k2)
i=1while i<=100:
yield i
i+=1
for i in range(100):
print(qq.__next__())
send函式用於向生成器傳送資料,但是要先呼叫next
while true:
food=yield "雞蛋"
print(food)
c.__next__()
c.send("1")
c.send("2")
面向過程程式設計
#1、首先強調:面向過程程式設計絕對不是用函式程式設計這麼簡單,面向過程是一種程式設計思路、思想,而程式設計思路是不依賴於具體的語言或語法的。言外之意是即使我們不依賴於函式,也可以基於面向過程的思想編寫程式 #2、定義 面向過程的核心是過程二字,過程指的是解決問題的步驟,即先幹什麼再幹什麼 基於面向過程設計程式就好比在設計一條流水線,是一種機械式的思維方式 #3、優點:複雜的問題流程化,進而簡單化 #4、缺點:可擴充套件性差,修改流水線的任意乙個階段,都會牽一髮而動全身 #5、應用:擴充套件性要求不高的場景,典型案例如linux核心,git,httpd
生成器 迭代器
最近見天一直在看廖大的python教程,卻發現很多基礎看著很簡單,但卻不會應用,歸根結底還是因為理解不到位,故而又將教程學了一遍,並將自己的理解記錄一下,也方便後面查閱。由於沒有相關程式設計基礎,有些理解可能是錯的,敬請批評指正。想深入具體學習廖大部落格請移步廖雪峰的官方 有時候用迴圈生成列表太過繁...
迭代器,生成器
迭代器 生成器 生成器的第1種實現方式 列表生成式改為生成器 python中yield關鍵字 函式中如果有yield,那麼呼叫這個函式的返回值為生成器。當生成器g呼叫next方法,執行函式,知道遇到yield就停止 再執行next,從上一次停止的地方繼續執行 函式中遇return直接退出,不繼續執行...
迭代器 生成器
迭代器 iter 可迭代物件 下乙個元素的值 next 可迭代物件 類中實現 iter 方法 提供迭代器 實現迭代器 import time class mylistiter object 迭代器類 def init self,data self.data data self.index 0 def...