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

python yield和Generator函數(shù)用法詳解

 更新時間:2020年02月10日 09:17:44   作者:郭雪原  
這篇文章主要介紹了python yield和Generator函數(shù)用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了python yield和Generator函數(shù)用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

首先我們從一個小程序?qū)耄鞫ㄒ粋€list,找出其中的素?cái)?shù),我們會這樣寫

import math
def is_Prims(number):

  if number == 2:
    return True
  //除2以外的所有偶數(shù)都不是素?cái)?shù)
  elif number % 2 == 0:
    return False
  //如果一個數(shù)能被除1和本身之外的數(shù)整除,則為合數(shù)。其實(shí)我們的判定范圍到根號n就可以
  for cur in range(2,int(math.sqrt(number))+1,2):
    if number % cur == 0:
      return False
    else:
      return True

def get_Prims(input_list):

  result_list = list()
  for element in input_list:
    if is_Prims(element):
      result_list.append(element)
  return result_list

aa = get_Prims([1,2,3,4,5,6,7,8,9])
print (aa)

但如果我們想給定一個數(shù),然后列出比這個數(shù)大的所有素?cái)?shù)呢?我們可能這樣寫:

def get_Prims(number):
  if is_Prims(number):
    return number

但是一旦return函數(shù)將控制權(quán)交給調(diào)用者后徹底結(jié)束,任何局部變量和函數(shù)工作都被丟棄,下一次調(diào)用又會從頭開始。因此我們就可以用一下寫法:

def get_Prims(number):
  while(True):
    if is_Prims(number):
      yield number
    number += 1

def get_numbers():
  total = list()
  for next_prim in get_Prims(2):
    if next_prim < 100:
      total.append(next_prim)
    else:
      print(total)
      return

get_numbers()

下面解釋一下generator函數(shù),一個函數(shù)的def代碼里包含了yield,函數(shù)就自動成為了一個generator函數(shù)(及時仍包含有return),generator函數(shù)創(chuàng)建generator(一種特殊形式的迭代器,這個迭代器有一個內(nèi)置__next__()方法),當(dāng)需要一個值的時候通過yield來產(chǎn)生而不是直接return,因此與一般函數(shù)不同的是,此時控制權(quán)并未交出。

for循環(huán)會隱式的調(diào)用next()函數(shù),next()函數(shù)負(fù)責(zé)調(diào)用generator中的__next__()方法,此時generator負(fù)責(zé)返回一個值給任何調(diào)用next()的方法,利用yield將此值傳回去,相當(dāng)于return語句。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pycharm5個非常有用的方法技巧

    Pycharm5個非常有用的方法技巧

    這篇文章主要介紹了Pycharm5個非常有用的方法技巧,PyCharm?是一款非常強(qiáng)大的編寫?python?代碼的工具。掌握一些小技巧能成倍的提升寫代碼的效率,本篇介紹幾個經(jīng)常使用的小技巧,需要的小伙伴可以參考一下
    2022-07-07
  • python數(shù)據(jù)處理 根據(jù)顏色對圖片進(jìn)行分類的方法

    python數(shù)據(jù)處理 根據(jù)顏色對圖片進(jìn)行分類的方法

    今天小編就為大家分享一篇python數(shù)據(jù)處理 根據(jù)顏色對圖片進(jìn)行分類的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python采集電影評論實(shí)戰(zhàn)示例

    Python采集電影評論實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Python采集電影評論實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • django數(shù)據(jù)模型中null和blank的區(qū)別說明

    django數(shù)據(jù)模型中null和blank的區(qū)別說明

    這篇文章主要介紹了django數(shù)據(jù)模型中null和blank的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • django中celery的定時任務(wù)使用

    django中celery的定時任務(wù)使用

    這篇文章主要介紹了django中celery的定時任務(wù)使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python項(xiàng)目中requirements.txt的用法實(shí)例教程

    python項(xiàng)目中requirements.txt的用法實(shí)例教程

    Python項(xiàng)目中必須包含一個requirements.txt文件,用于記錄所有依賴包及其精確的版本號,以便新環(huán)境部署,下面這篇文章主要給大家介紹了關(guān)于python項(xiàng)目中requirements.txt用法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解

    Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解

    今天小編就為大家分享一篇Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python制作Windows按鍵通知腳本

    Python制作Windows按鍵通知腳本

    對于鍵盤沒有背光燈的同學(xué)而言,切換大小寫或控制Num鍵開關(guān)的時候沒有提示,經(jīng)常需要試探性地輸入一些字符來判斷開關(guān)是否打開,體驗(yàn)非常糟糕。所以本文就來用Python做一個Windows按鍵通知腳本,需要的可以參考一下
    2022-11-11
  • 使用python制作進(jìn)度條的方法小結(jié)

    使用python制作進(jìn)度條的方法小結(jié)

    偶然間刷到一個視頻,說到:當(dāng)程序正在運(yùn)算時,會有一個較長時間的空白期,誰也不知道程序運(yùn)行的進(jìn)度如何,不如給他加個進(jìn)度條,于是我今個就搜尋一下,Python版的進(jìn)度條都可以怎么寫,感興趣的小伙伴跟著小編一起來看看吧
    2024-04-04
  • Python(PyS60)實(shí)現(xiàn)簡單語音整點(diǎn)報(bào)時

    Python(PyS60)實(shí)現(xiàn)簡單語音整點(diǎn)報(bào)時

    這篇文章主要為大家詳細(xì)介紹了Python(PyS60)實(shí)現(xiàn)簡單語音整點(diǎn)報(bào)時,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評論

洞口县| 仪征市| 日照市| 宽甸| 新蔡县| 林周县| 关岭| 团风县| 平南县| 彰化县| 中山市| 方城县| 娱乐| 丹凤县| 成安县| 屏东市| 呼玛县| 肥西县| 盈江县| 吴忠市| 蓬溪县| 千阳县| 哈巴河县| 竹北市| 隆德县| 中西区| 三原县| 哈密市| 合阳县| 宜良县| 共和县| 独山县| 翼城县| 彰化县| 九台市| 日喀则市| 木里| 长子县| 汉寿县| 香港 | 宜章县|