for循环利用可迭代对象与迭代器完成工作的本质
生活随笔
收集整理的這篇文章主要介紹了
for循环利用可迭代对象与迭代器完成工作的本质
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
for循環(huán)工作本質(zhì)
for item in Iterable 循環(huán)的本質(zhì)就是先通過(guò)iter()函數(shù)獲取可迭代對(duì)象Iterable
的迭代器,然后對(duì)獲取到的迭代器不斷調(diào)?next()?法來(lái)獲取下?個(gè)值并將其
賦值給item,當(dāng)遇到StopIteration的異常后循環(huán)結(jié)束。
li = [100, 200, 300]
# for num in li:
# ? ? print(num)
? ? # 1. 通過(guò)調(diào)用可迭代對(duì)象的__iter__方法獲取迭代器
? ? # 2. 對(duì)迭代器調(diào)用__next__進(jìn)行迭代操作,
? ? # ? ? 如果沒(méi)有拋出StopIteration異常,表示迭代沒(méi)有結(jié)束,把獲取到的數(shù)據(jù)元素放到變量中
? ? # ? ? 如果拋出了異常,表示迭代結(jié)束,退出執(zhí)行
? ? # 3. 執(zhí)行循環(huán)體
? ? # 4. 跳轉(zhuǎn)到第2步執(zhí)行
while循環(huán)解釋for工作本質(zhì):
iterator = li.__iter__()
while True:
? ? try:
? ? ? ? num = iterator.__next__()
? ? except StopIteration:
? ? ? ? break
? ? else:
? ? ? ? print(num)
for item in Iterable 循環(huán)的本質(zhì)就是先通過(guò)iter()函數(shù)獲取可迭代對(duì)象Iterable
的迭代器,然后對(duì)獲取到的迭代器不斷調(diào)?next()?法來(lái)獲取下?個(gè)值并將其
賦值給item,當(dāng)遇到StopIteration的異常后循環(huán)結(jié)束。
li = [100, 200, 300]
# for num in li:
# ? ? print(num)
? ? # 1. 通過(guò)調(diào)用可迭代對(duì)象的__iter__方法獲取迭代器
? ? # 2. 對(duì)迭代器調(diào)用__next__進(jìn)行迭代操作,
? ? # ? ? 如果沒(méi)有拋出StopIteration異常,表示迭代沒(méi)有結(jié)束,把獲取到的數(shù)據(jù)元素放到變量中
? ? # ? ? 如果拋出了異常,表示迭代結(jié)束,退出執(zhí)行
? ? # 3. 執(zhí)行循環(huán)體
? ? # 4. 跳轉(zhuǎn)到第2步執(zhí)行
while循環(huán)解釋for工作本質(zhì):
iterator = li.__iter__()
while True:
? ? try:
? ? ? ? num = iterator.__next__()
? ? except StopIteration:
? ? ? ? break
? ? else:
? ? ? ? print(num)
總結(jié)
以上是生活随笔為你收集整理的for循环利用可迭代对象与迭代器完成工作的本质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 岭回归预测PM2.5
- 下一篇: python编码规范与命名规范