中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Python代碼中的yield到底是什么?

Python代碼中的yield到底是什么?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 11:15:06 1697166906

一、Python代碼中的yield到底是什么

在 Python 中,yield 是一種關(guān)鍵字,它用于定義生成器函數(shù)。生成器函數(shù)與普通函數(shù)相似,它們都可以接受參數(shù)和返回值。不同之處是,生成器函數(shù)在執(zhí)行到 yield 語句時會暫停執(zhí)行,并將 yield 后面的表達(dá)式作為返回值返回。當(dāng)生成器再次被調(diào)用時,它會從暫停的位置繼續(xù)執(zhí)行,直到下一個 yield 語句或函數(shù)結(jié)束。簡單來說,yield 可以將一個函數(shù)變成一個可以暫停和恢復(fù)的函數(shù),用于迭代操作。

二、Python介紹

1、簡介

Python由荷蘭數(shù)學(xué)和計算機(jī)科學(xué)研究學(xué)會的吉多·范羅蘇姆于1990年代初設(shè)計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭ython語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨(dú)立的、大型項(xiàng)目的開發(fā)。

Python在各個編程語言中比較適合新手學(xué)習(xí),Python解釋器易于擴(kuò)展,可以使用C語言或C++(或者其他可以通過C調(diào)用的語言)擴(kuò)展新的功能和數(shù)據(jù)類型。Python也可用于可定制化軟件中的擴(kuò)展程序語言。Python豐富的標(biāo)準(zhǔn)庫,提供了適用于各個主要系統(tǒng)平臺的源碼或機(jī)器碼。

2、發(fā)展歷程

自20世紀(jì)90年代初Python語言誕生至今,它已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。1995年,Guido van Rossum在弗吉尼亞州的國家創(chuàng)新研究公司(CNRI)繼續(xù)他在Python上的工作,并在那里發(fā)布了該軟件的多個版本。2000年五月,Guido van Rossum和Python核心開發(fā)團(tuán)隊(duì)轉(zhuǎn)到BeOpen.com并組建了BeOpen PythonLabs團(tuán)隊(duì)。同年十月,BeOpen PythonLabs團(tuán)隊(duì)轉(zhuǎn)到Digital Creations(現(xiàn)為Zope Corporation)。

2001年,Python軟件基金會(PSF)成立,這是一個專為擁有Python相關(guān)知識產(chǎn)權(quán)而創(chuàng)建的非營利組織。Zope Corporation是PSF的贊助成員。Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆(Guido van Rossum)。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,作為ABC語言的一種繼承。之所以選中單詞Python(意為大蟒蛇)作為該編程語言的名字,是因?yàn)橛?0世紀(jì)70年代首播的電視喜劇《蒙提·派森的飛行馬戲團(tuán)》(Monty Python’s Flying Circus)。

ABC是由Guido參加設(shè)計的一種教學(xué)語言。就Guido本人看來,ABC這種語言非常優(yōu)美和強(qiáng)大,是專門為非專業(yè)程序員設(shè)計的。但是ABC語言并沒有成功,究其原因,Guido認(rèn)為是其非開放造成的。Guido決心在Python中避免這一錯誤。同時,他還想實(shí)現(xiàn)在ABC中閃現(xiàn)過但未曾實(shí)現(xiàn)的東西。就這樣,Python在Guido手中誕生了。可以說,Python是從ABC發(fā)展起來,主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計的)的影響。并且結(jié)合了Unix shell和C的習(xí)慣。

Python已經(jīng)成為較受歡迎的程序設(shè)計語言之一。自從2004年以后,python的使用率呈線性增長。Python 2于2000年10月16日發(fā)布,穩(wěn)定版本是Python 2.7。Python 3于2008年12月3日發(fā)布,不完全兼容Python 2。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。

由于Python語言的簡潔性、易讀性以及可擴(kuò)展性,在國外用Python做科學(xué)計算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python來教授程序設(shè)計課程。例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計算機(jī)科學(xué)及編程導(dǎo)論就使用Python語言講授。眾多開源的科學(xué)計算軟件包都提供了Python的調(diào)用接口,例如知名的計算機(jī)視覺庫OpenCV、三維可視化庫VTK、醫(yī)學(xué)圖像處理庫ITK。而Python專用的科學(xué)計算擴(kuò)展庫就更多了,例如如下3個十分經(jīng)典的科學(xué)計算擴(kuò)展庫:NumPy、SciPy和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。因此Python語言及其眾多的擴(kuò)展庫所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計算應(yīng)用程序。2018年3月,該語言作者在郵件列表上宣布Python 2.7將于2020年1月1日終止支持。用戶如果想要在這個日期之后繼續(xù)得到與Python 2.7有關(guān)的支持,則需要付費(fèi)給商業(yè)供應(yīng)商。

3、優(yōu)點(diǎn)

簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。易學(xué):Python極其容易上手,因?yàn)镻ython有極其簡單的說明文檔。易讀、易維護(hù):風(fēng)格清晰劃一、強(qiáng)制縮進(jìn)。速度較快:Python的底層是用C語言寫的,很多標(biāo)準(zhǔn)庫和第三方庫也都是用C寫的,運(yùn)行速度非常快。免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。FLOSS是基于一個團(tuán)體分享知識的概念。高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發(fā)的android平臺。解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計算機(jī)使用的語言(二進(jìn)制代碼,即0和1)。這個過程通過編譯器和不同的標(biāo)記、選項(xiàng)完成。運(yùn)行程序的時候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行程序。在計算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機(jī)使用的機(jī)器語言并運(yùn)行。這使得使用Python更加簡單。也使得Python程序更加易于移植。面向?qū)ο?/strong>:Python既支持面向過程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^程”的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。Python是完全面向?qū)ο蟮恼Z言。函數(shù)、模塊、數(shù)字、字符串都是對象。并且完全支持繼承、重載、派生、多繼承,有益于增強(qiáng)源代碼的復(fù)用性。Python支持重載運(yùn)算符和動態(tài)類型。相對于Lisp這種傳統(tǒng)的函數(shù)式編程語言,Python對函數(shù)式設(shè)計只提供了有限的支持。有兩個標(biāo)準(zhǔn)庫(functools,itertools)提供了Haskell和Standard ML中久經(jīng)考驗(yàn)的函數(shù)式程序設(shè)計工具。可擴(kuò)展性、可擴(kuò)充性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。Python本身被設(shè)計為可擴(kuò)充的。并非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C++、Cython來編寫擴(kuò)充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)。因此,很多人還把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程序進(jìn)行集成和封裝。在Google內(nèi)部的很多項(xiàng)目,例如Google Engine使用C++編寫性能要求極高的部分,然后用Python或Java/Go調(diào)用相應(yīng)的模塊。《Python技術(shù)手冊》的作者馬特利(Alex Martelli)說:“這很難講,不過,2004年,Python已在Google內(nèi)部使用,Google 召募許多 Python 高手,但在這之前就已決定使用Python,他們的目的是 Python where we can,C++ where we must,在操控硬件的場合使用C++,在快速開發(fā)時候使用Python。”可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。豐富的庫:Python標(biāo)準(zhǔn)庫確實(shí)很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。Python的作者設(shè)計限制性很強(qiáng)的語法,使得不好的編程習(xí)慣(例如if語句的下一行不向右縮進(jìn))都不能通過編譯。其中很重要的一項(xiàng)就是Python的縮進(jìn)規(guī)則。一個和其他大多數(shù)語言(如C)的區(qū)別就是,一個模塊的界限,完全是由每行的首字符在這一行的位置來決定(而C語言是用一對大括號來明確的定出模塊的邊界,與字符的位置毫無關(guān)系)。通過強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方),Python確實(shí)使得程序更加清晰和美觀。高級動態(tài)編程:雖然Python可能被粗略地分類為“腳本語言”(script language),但實(shí)際上一些大規(guī)模軟件開發(fā)計劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態(tài)編程語言,原因是“腳本語言”泛指僅作簡單程序設(shè)計任務(wù)的語言,如shellscript、VBScript等只能處理簡單任務(wù)的編程語言,并不能與Python相提并論。做科學(xué)計算優(yōu)點(diǎn)多:說起科學(xué)計算,首先會被提到的可能是MATLAB。除了MATLAB的一些專業(yè)性很強(qiáng)的工具箱還無法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相應(yīng)的擴(kuò)展庫。

4、缺點(diǎn)

單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€.py文件。給初學(xué)者帶來困惑:獨(dú)特的語法這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。運(yùn)行速度慢:這里是指與C和C++相比。Python開發(fā)人員盡量避開不成熟或者不重要的優(yōu)化。一些針對非重要部位的加快運(yùn)行速度的補(bǔ)丁通常不會被合并到Python內(nèi)。所以很多人認(rèn)為Python很慢。不過,根據(jù)二八定律,大多數(shù)程序?qū)λ俣纫蟛桓摺T谀承\(yùn)行速度要求很高的情況,Python設(shè)計師傾向于使用JIT技術(shù),或者用使用C/C++語言改寫這部分程序。可用的JIT技術(shù)是PyPy。

延伸閱讀1:python標(biāo)準(zhǔn)庫

Python擁有一個強(qiáng)大的標(biāo)準(zhǔn)庫。Python語言的核心只包含數(shù)字、字符串、列表、字典、文件等常見類型和函數(shù),而由Python標(biāo)準(zhǔn)庫提供了系統(tǒng)管理、網(wǎng)絡(luò)通信、文本處理、數(shù)據(jù)庫接口、圖形系統(tǒng)、XML處理等額外的功能。Python標(biāo)準(zhǔn)庫命名接口清晰、文檔良好,很容易學(xué)習(xí)和使用。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Python爬蟲是什么?

一、爬蟲的基本原理Python爬蟲的基本原理是通過發(fā)送HTTP請求獲取網(wǎng)頁的內(nèi)容,然后解析網(wǎng)頁的結(jié)構(gòu),提取出所需的數(shù)據(jù)。它使用HTTP庫向目標(biāo)網(wǎng)站發(fā)...詳情>>

2023-10-13 12:34:56
關(guān)系型數(shù)據(jù)庫的本質(zhì)是什么,mongodb為什么不是關(guān)系型數(shù)據(jù)庫?

一、關(guān)系型數(shù)據(jù)庫的本質(zhì)是什么,mongodb不是關(guān)系型數(shù)據(jù)庫的原因關(guān)系型數(shù)據(jù)庫的本質(zhì)是“relation”。這里中文翻譯成“關(guān)系”有點(diǎn)籠統(tǒng),因?yàn)檫€有...詳情>>

2023-10-13 12:28:32
ORACLE里面LOBINDEX,LOBSEGMENT類型的是什么對象?

一、ORACLE里面LOBINDEX,LOBSEGMENT類型的是什么對象建立含有l(wèi)ob字段的表時,oracle會自動為lob字段建立兩個單獨(dú)的segment,一個用來存放數(shù)據(jù),...詳情>>

2023-10-13 12:19:56
Lucene/ ElasticSearch這類的搜索引擎和SQL數(shù)據(jù)庫里的查詢/全文檢索有什么區(qū)別?

一、Lucene/ ElasticSearch這類的搜索引擎和SQL數(shù)據(jù)庫里的查詢/全文檢索的區(qū)別es也可以理解成是一種數(shù)據(jù)庫,不僅能提供全文檢索功能,還可以支...詳情>>

2023-10-13 12:17:32
mysql的innodb通過nextkey lock解決了幻讀,為什么還說默認(rèn)隔離級別是可重復(fù)讀?

一、解決了幻讀,為什么還說默認(rèn)隔離級別是可重復(fù)讀MySQL的可重復(fù)讀隔離級別下是有“bug”的Snapshot Isolation,可以避免非write skew style的...詳情>>

2023-10-13 12:09:00
快速通道
主站蜘蛛池模板: 在线观看亚洲 | 黄色网页在线观看 | 久久av一区二区三区 | 欧美日韩综合精品 | 国产精品欧美一区乱破 | 欧美日韩国产精品 | 青春草在线观看 | 日韩av电影免费 | 亚洲精品三级 | 国产伦精品一区二区三区在线 | 日本毛片视频 | 中文字幕国产高清 | 国产精品亚洲视频 | 精品九九| 日韩电影在线播放 | 中文字幕亚洲欧美日韩在线不卡 | 中文在线a在线 | 欧美日韩中文国产一区发布 | 亚洲精品一级 | 日本视频免费看 | 日韩免费视频 | 日韩在线精品强乱中文字幕 | 青青草久草在线 | 日韩精品专区在线影院重磅 | 久久免费视频观看 | 亚洲 欧美 精品 | 一区二区三区在线 | 欧 | 中文字幕亚洲在线观看 | 亚洲精品午夜国产va久久成人 | 免费国产一区 | 亚洲一区二区三区四区在线观看 | 亚洲精品一二区 | 国产视频色 | 久久久久久久久久久免费av | 蜜臀久久| a在线看| 国产99久久久久久免费看农村 | 国产激情 | 一级黄色录像免费观看 | 日韩久久久久久 | 一区中文字幕 |