doraemon的python 迭代器與生成器

2022-08-02 15:48:11 字數 1430 閱讀 5612

6.9.1迭代器的定義

自己不用寫,只需要學會用

迭代器:對可迭代物件中的元素進行逐一獲取,表象:具有''next''方法且每次呼叫都獲取可迭代物件中的元素(從前到後乙個個獲取)

迭代器想要獲取每個值,就必須反覆執行

v1 = [11,22,33,44]

​#列表轉化成迭代器

v2 = iter(v1)

result = v2.__next__()

result = v2.__next__()

result = v2.__next__()

result = v2.__next__()

#如果報錯:stopiteration,表示已經迭代完成

​v1 = [11,22,334,44]

v2 = iter(v1)

while true:

try:

val = v2.__next__()

print(val)

exceppt exception as e:

break

v1 = [11,22,334,44]

​#內部會將v1轉換成迭代器

#內部會反覆執行 迭代器.__next__()

#取完後不報錯

​for item in v1:

print(item)

6.9.2 可迭代物件

v1 = [11,223,33,44]

result = v1.__iter__()

#函式

def func():

return 123

func()

#生成器很熟(內部包含有yield)

def func():

print('f1')

yield 1

print('f2')

yield 2

print('f3')

yield 100

print('f4')    

#函式內部**不會執行,返回乙個生成器物件,只有被for迴圈才只想內部**

v1 = func()

​#生成器是可以被for迴圈,一旦開始迴圈那麼函式內部得**就會開始執行

for item in v1:

print(item)

6.10.1 生成器推導式

def func():

count = 1

while true:

yield count

count += 1

if count == 99

return

val = func()

​for item in val:

print(item)

python的包 python的包

1.把解決一類問題的模組放在同乙個資料夾裡,這個資料夾就是包 2.通過import或是from.import匯入時必須遵循乙個原則 a 凡是在匯入時帶點的,點的左邊都必須是乙個包,否則非法 b 匯入後,使用時點的左邊可以是包,模組,類,函式 它們都可以用點的方式調節用自己的屬性 c from.imp...

python的語句 Python的語句

python中的兩種語句 1 if條件控制語句 格式 if a int input 請輸入第乙個數 b int input 請輸入第二個數 if a b print a比b小 if else a int input 請輸入第乙個數 b int input 請輸入第二個數 if a b print a...

Python(四)python的注釋

一 python單行注釋符號 python中單行注釋採用 開頭二 批量 多行注釋符號 多行注釋是用三引號 包含的,例如 三 python中文注釋方法 如果檔案裡有非ascii字元,需要在第一行或第二行指定編碼宣告。把chinesetest.py檔案的編碼重新改為ansi,並加上編碼宣告 一定要在第一...