中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Python中怎么實現一個生成器函數

Python中怎么實現一個生成器函數,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

創新互聯主營雁江網站建設的網絡公司,主營網站建設方案,app軟件開發公司,雁江h5重慶小程序開發搭建,雁江網站營銷推廣歡迎雁江等地區企業咨詢

1.生成器
  • 在 Python 中,一邊循環一邊計算的機制,稱為生成器(Generator);

  • 生成器是一個返回迭代器的函數,只能用于迭代操作;

2.什么是生成器函數
  • 生成器是Python中的一個對象,對這個對象進行操作,可以依次生產出按生成器內部運算產生的數據;

  • 生成器函數指的是函數體中包含yield關鍵字的函數(yield就是專門給生成器用的return);

  • 生成器可以通過生成器表達式和生成器函數獲取到;

3.生成器函數的定義
def add():
    for i in range(10):
        yield i
g = add()
print(g)  # <generator object add at 0x10f6110f8>
print(next(g))  # 0
print(next(g))  # 1
  • 我們可以通過yield關鍵字來定義一個生成器函數,這個生成器函數返回值就是一個生成器對象;

4.生成器函數的調用
def gen():
    print('111111')
    yield '111111'
    print('222222')
    yield '222222'
    print('333333')
    yield '333333'
g = gen()
print(g)  # <generator object gen at 0x0026BBF0>
next(g)   # 111111
next(g)   # 222222
next(g)   # 333333
next(g, 'over')
  • 生成器函數可以使用next()迭代,且每次next()只會返回一次yield的值,然后暫停,下次一次next()時會在當前位置繼續,如果沒有元素可以迭代了,還 執在行next()則需要給定一個默認值,不給默認值會報錯;

  • 如果在生成器函數中使用return,則會終止迭代,且不能得到返回值;

def gen():
    print('111111')
    yield '111111'
    print('222222')
    return '222222'
    print('333333')
    yield '333333'
g = gen()
print(g)  # <generator object gen at 0x0026BBF0>
next(g)   # 111111
next(g)   # 222222, 拋出異常
5.生成器函數的使用場景
# 死循環
def way():
    i = 0
    while True:
        i += 1
        yield i
c = way()
print(next(c)) # 1
print(next(c)) # 2
print(next(c)) # 3
print(next(c)) # 4
print(next(c)) # 5
  • 在生成器中使用死循環,不會一直執行,仍舊是執行多少次next(),返回多少個值;

6.生成器函數中的語法糖
# 普通生成器函數way1
def way1():
    for i in range(5):
        yield i
# 帶語法糖的生成器函數way2
def way2():
    yield from range(5)
#循環輸出way1
for i in way1():
    print(i)  #0 1 2 3 4
#循環輸出way2
for j in way2():
    print(j)  #0 1 2 3 4
  • 語法糖指那些沒有給計算機語言添加新功能,而只是對人類來說更“甜蜜”的語法;

  • 語法糖給程序員提供了更實用的編碼方式,有益于更好的編碼風格,更易讀;

  • 生成器的語法糖也就是生成器的一種語法,作用是使代碼更加簡潔;

看完上述內容,你們掌握Python中怎么實現一個生成器函數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

網頁標題:Python中怎么實現一個生成器函數
URL地址:http://www.2m8n56k.cn/article18/pshigp.html

成都網站建設公司_創新互聯,為您提供響應式網站網站建設服務器托管網站改版網站制作品牌網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 国产美女精品三级在线观看 | 国产亚洲精品日韩已满十八 | 一区精品视频 | 国产美女精品三级在线观看 | 亚洲成年人在线观看 | 日本 片 成人 在线 日本68xxxxxxxxx老师 | 日韩黄色毛片 | 精品国产成人综合久久小说 | 久久久这里只有精品加勒比 | 成人免费aaaaa毛片 | 日韩视频精品在线 | 欧美亚洲日本韩国一级毛片 | 免费一级特黄欧美大片勹久久网 | 北岛玲亚洲一区在线观看 | 99av在线 | 久久网在线 | 最新国产三级 | 免费看欧美一级a毛片 | 欧美视频在线观在线看 | 台湾三级香港三级经典三在线 | 一区二区三区四区在线 | 99秒拍福利大尺度视频 | 91国内视频在线观看 | 久cao在线观看视频 久爱免费观看在线网站 | 天堂免费在线视频 | 国产免费午夜a无码v视频 | 亚洲精品第一国产综合野 | 亚洲欧美自拍一区 | 日韩免费观看的一级毛片 | 亚洲综合视频在线观看 | 美国毛片基地a级e片 | 国产成人午夜极速观看 | 一级做a爱过程免费视频时看 | 91精品最新国内在线播放 | 成人在线网址 | 一区二区三区精品视频 | 99精品这里只有精品高清视频 | 欧美精品亚洲精品日韩一区 | 草久久久久 | 久久综合给合久久狠狠狠97色69 | 国产亚洲精品aaa大片 |