最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python yield 小結(jié)和實(shí)例

 更新時間:2014年04月25日 11:55:35   作者:  
yield的作用就是把一個函數(shù)變成一個 generator,帶有 yield 的函數(shù)不再是一個普通函數(shù),Python 解釋器會將其視為一個 generator(不知道什么是generator要先去理解一下Python的generator的了)

一個帶有 yield 的函數(shù)就是一個 generator,它和普通函數(shù)不同,生成一個 generator 看起來像函數(shù)調(diào)用,但不會執(zhí)行任何函數(shù)代碼,直到對其調(diào)用 next()(在 for 循環(huán)中會自動調(diào)用 next())才開始執(zhí)行。雖然執(zhí)行流程仍按函數(shù)的流程執(zhí)行,但每執(zhí)行到一個 yield 語句就會中斷,并返回一個迭代值,下次執(zhí)行時從 yield 的下一個語句繼續(xù)執(zhí)行??雌饋砭秃孟褚粋€函數(shù)在正常執(zhí)行的過程中被 yield 中斷了數(shù)次,每次中斷都會通過 yield 返回當(dāng)前的迭代值。

yield 的好處:把一個函數(shù)改寫為一個 generator 就獲得了迭代能力,比起用類的實(shí)例保存狀態(tài)來計(jì)算下一個 next() 的值,不僅代碼簡潔,而且執(zhí)行流程異常清晰。

測試代碼:
 

復(fù)制代碼 代碼如下:

#!/usr/bin/env python
#-*- coding:utf8 -*-

def fab(max):
    """斐波那契數(shù)列"""
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n += 1


def perm(items, n=None):
    """全排列"""
    if n is None:
        n = len(items)
    for i in range(len(items)):
        v = items[i:i+1]
        if n == 1:
            yield v
        else:
            rest = items[:i] + items[i+1:]
            for p in perm(rest, n-1):
                yield v + p

if __name__ == '__main__':
    for n in fab(5):
        print n
    print  "全排列:123"
    for n in perm("123"):
        print n

相關(guān)文章

  • 簡單了解Python matplotlib線的屬性

    簡單了解Python matplotlib線的屬性

    這篇文章主要介紹了簡單了解Python matplotlib線的屬性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-06-06
  • Python機(jī)器學(xué)習(xí)iris數(shù)據(jù)集預(yù)處理和模型訓(xùn)練方式

    Python機(jī)器學(xué)習(xí)iris數(shù)據(jù)集預(yù)處理和模型訓(xùn)練方式

    iris數(shù)據(jù)集包含150個樣本,每個樣本有4個特征及其類別信息,本文介紹了iris數(shù)據(jù)集的基本操作和如何使用knn模型進(jìn)行花卉種類預(yù)測,是機(jī)器學(xué)習(xí)中的經(jīng)典案例,適用于監(jiān)督式學(xué)習(xí)
    2024-10-10
  • Python的組合模式與責(zé)任鏈模式編程示例

    Python的組合模式與責(zé)任鏈模式編程示例

    這篇文章主要介紹了Python的組合模式與責(zé)任鏈模式編程示例,組合模式與責(zé)任鏈模式都屬于Python的設(shè)計(jì)模式,需要的朋友可以參考下
    2016-02-02
  • python 模擬登陸github的示例

    python 模擬登陸github的示例

    這篇文章主要介紹了python 模擬登陸github的示例代碼,幫助大家更好的理解和學(xué)習(xí)python 爬蟲的相關(guān)知識,感興趣的朋友可以了解下
    2020-12-12
  • 對pyqt5之menu和action的使用詳解

    對pyqt5之menu和action的使用詳解

    今天小編就為大家分享一篇對pyqt5之menu和action的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python--字典(dict)和集合(set)詳解

    python--字典(dict)和集合(set)詳解

    本文通過實(shí)例給大家介紹了python中字典和集合的知識小結(jié),非常不錯,具有參考借鑒價值,需要的的朋友參考下吧,希望能夠給你帶來幫助
    2021-09-09
  • PyQt5超詳細(xì)入門級教程(推薦!)

    PyQt5超詳細(xì)入門級教程(推薦!)

    PyQt5是Python編程語言的一個模塊,它提供了一種在Python中使用Qt庫的方式,下面這篇文章主要給大家介紹了關(guān)于PyQt5超詳細(xì)入門級教程的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • django queryset相加和篩選教程

    django queryset相加和篩選教程

    這篇文章主要介紹了django queryset相加和篩選教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Django自定義分頁效果

    Django自定義分頁效果

    這篇文章主要為大家詳細(xì)介紹了Django自定義分頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Python實(shí)現(xiàn)讀取大量Excel文件并跨文件批量計(jì)算平均值

    Python實(shí)現(xiàn)讀取大量Excel文件并跨文件批量計(jì)算平均值

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言,實(shí)現(xiàn)對多個不同Excel文件進(jìn)行數(shù)據(jù)讀取與平均值計(jì)算的方法,感興趣的可以了解一下
    2023-02-02

最新評論

凌源市| 渭源县| 正镶白旗| 尼勒克县| 福安市| 黑龙江省| 阳春市| 图片| 江陵县| 丰原市| 洛南县| 建昌县| 哈尔滨市| 长寿区| 犍为县| 谢通门县| 黑龙江省| 双鸭山市| 桐城市| 东明县| 康平县| 神木县| 镶黄旗| 巨鹿县| 大埔区| 曲水县| 石河子市| 江达县| 晋宁县| 安丘市| 新郑市| 大同市| 凯里市| 连城县| 边坝县| 黑山县| 济南市| 塔城市| 南安市| 齐齐哈尔市| 齐齐哈尔市|