《Python程序設(shè)計(jì)》課件-第10講 Python計(jì)算生態(tài)及常用庫(kù)_第1頁(yè)
《Python程序設(shè)計(jì)》課件-第10講 Python計(jì)算生態(tài)及常用庫(kù)_第2頁(yè)
《Python程序設(shè)計(jì)》課件-第10講 Python計(jì)算生態(tài)及常用庫(kù)_第3頁(yè)
《Python程序設(shè)計(jì)》課件-第10講 Python計(jì)算生態(tài)及常用庫(kù)_第4頁(yè)
《Python程序設(shè)計(jì)》課件-第10講 Python計(jì)算生態(tài)及常用庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第10講Python計(jì)算生態(tài)及常用庫(kù)(1)timePython計(jì)算生態(tài)概覽Python生態(tài)庫(kù)的構(gòu)建與發(fā)布學(xué)習(xí)目標(biāo)本講要點(diǎn)本講要點(diǎn)10.1Python計(jì)算生態(tài)概述Python計(jì)算生態(tài)涵蓋網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析、文本處理、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)、圖形用戶界面、Web開發(fā)、網(wǎng)絡(luò)應(yīng)用開發(fā)、游戲開發(fā)、圖形藝術(shù)、圖像處理等多個(gè)領(lǐng)域,為各個(gè)領(lǐng)域的Python使用者提供了極大便利。10.1Python計(jì)算生態(tài)概述10.1Python計(jì)算生態(tài)概述1、命令行線上安裝pipinstall模塊名Python3.8版本自動(dòng)安裝pip命令piplist——裝了哪些庫(kù)2、Pycharm中安裝(1)點(diǎn)擊File

再點(diǎn)擊settings(2)點(diǎn)擊projectInterpreter(3)點(diǎn)擊左下角的"+"按鈕(4)在AvailablePackages頁(yè)選擇要安裝的庫(kù),單擊安裝第三方庫(kù)網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則,自動(dòng)從網(wǎng)絡(luò)上抓取信息的程序或者腳本。通過網(wǎng)絡(luò)爬蟲可以代替手工完成很多工作,如批量收集網(wǎng)絡(luò)上的數(shù)據(jù)資源。10.1Python計(jì)算生態(tài)概述網(wǎng)絡(luò)爬蟲網(wǎng)絡(luò)爬蟲程序涉及HTTP請(qǐng)求、Web信息提取、網(wǎng)頁(yè)數(shù)據(jù)解析等操作。Python計(jì)算生態(tài)通過Requests、Python-Goose、Re、BeautifulSoup、Scrapy和PySpider等庫(kù)為這些操作提供了強(qiáng)有力的支持。庫(kù)名功能說明RequestsRequests提供了簡(jiǎn)單易用的類HTTP協(xié)議,支持連接池、SSL、Cookies,是Python最主要的、功能最豐富的網(wǎng)絡(luò)爬蟲功能庫(kù)Python-GoosePython-Goose專用于從文章、視頻類型的Web頁(yè)面中提取數(shù)據(jù)ReRe提供了定義和解析正則表達(dá)式的一系列通用功能,除網(wǎng)絡(luò)爬蟲外,還適用于各類需要解析數(shù)據(jù)的場(chǎng)景BeautifulSoupBeautifulSoup用于從HTML、XML等Web頁(yè)面中提取數(shù)據(jù),它提供一些便捷的、Python式的函數(shù),使用起來非常簡(jiǎn)單ScrapyScrapy支持快速、高層次的屏幕抓取和批量、定時(shí)的Web抓取以及結(jié)構(gòu)性數(shù)據(jù)的抓取,是一款優(yōu)秀的網(wǎng)絡(luò)爬蟲框架PySpiderPySpider也是一款爬蟲框架,它支持?jǐn)?shù)據(jù)庫(kù)后端、消息隊(duì)列、優(yōu)先級(jí)、分布式架構(gòu)等功能。與Scrapy相比,它靈活便捷,更適合小規(guī)模的爬取工作10.1Python計(jì)算生態(tài)概述網(wǎng)絡(luò)爬蟲10.1Python計(jì)算生態(tài)概述#爬取圖片并以原圖片名字保存importrequestsimportosurl="/2019/0802/20190802010628808.jpg"root="D://picture//"path=root+url.split('/')[-1]#以/分割url并將倒數(shù)第一個(gè)(也就是圖片名稱)根目錄鏈接try:ifnotos.path.exists(root):#如果根目錄不存在就創(chuàng)建該目錄

os.mkdir(root)ifnotos.path.exists(path):#如果文件不存在,則從網(wǎng)站獲取

r=requests.get(url)#類型:requests.models.Responser.raise_for_status()withopen(path,'wb')asfp:#圖片是二進(jìn)制

fp.write(r.content)fp.close()print("sucess")else:print("filealreadyexists")except:print("Error")網(wǎng)絡(luò)爬蟲數(shù)據(jù)分析指:用適當(dāng)?shù)慕y(tǒng)計(jì)分析方法對(duì)收集來的大量數(shù)據(jù)進(jìn)行匯總與分析,以求最大化地發(fā)揮數(shù)據(jù)的作用,數(shù)據(jù)分析離不開科學(xué)計(jì)算。10.1Python計(jì)算生態(tài)概述數(shù)據(jù)分析Python計(jì)算生態(tài)通過Numpy、Pandas、SciPy庫(kù)為數(shù)據(jù)分析領(lǐng)域提供支持。高維數(shù)據(jù)的切片、索引、變換、合并等操作。庫(kù)名功能說明NumpyNumpy是科學(xué)計(jì)算的核心庫(kù),定義了表示N維數(shù)組對(duì)象的類型ndarray,通過ndarray對(duì)象可以便捷地存儲(chǔ)和處理大型矩陣;包含了成熟的用于實(shí)現(xiàn)線性代數(shù)、傅里葉變換和隨機(jī)數(shù)生成的函數(shù),能以優(yōu)異的效率實(shí)現(xiàn)科學(xué)計(jì)算PandasPandas是一個(gè)基于Numpy開發(fā)的、用于分析結(jié)構(gòu)化數(shù)據(jù)的工具集,它為解決數(shù)據(jù)分析任務(wù)而生,同時(shí)提供數(shù)據(jù)挖掘和數(shù)據(jù)清洗功能SciPyScipy是Python科學(xué)計(jì)算程序中會(huì)使用的核心庫(kù),它用于有效地計(jì)算Numpy矩陣,可以處理插值、積分、優(yōu)化等問題,也能處理圖像和信號(hào)、求解常微分方程數(shù)值10.1Python計(jì)算生態(tài)概述數(shù)據(jù)分析文本處理即對(duì)文本內(nèi)容的處理,包括文本內(nèi)容的分類、文本特征的提取、文本內(nèi)容的轉(zhuǎn)換等等。Python計(jì)算生態(tài)通過Jieba(中文分詞庫(kù))、PyPDF2、Python-docx、NLTK(自然語(yǔ)言處理庫(kù))等庫(kù)為文本處理領(lǐng)域提供支持。10.1Python計(jì)算生態(tài)概述文本處理庫(kù)名功能說明JiebaJieba是一個(gè)優(yōu)秀的Python中文分詞庫(kù),它支持精確模式、全模式和搜索引擎模式這三種分詞模式,支持繁體分詞、自定義字典,可有效標(biāo)注詞性,從文本中提取關(guān)鍵詞NLTKNLTK:自然語(yǔ)言文本處理第三方庫(kù)-提供了一批簡(jiǎn)單易用的自然語(yǔ)言文本處理功能-支持語(yǔ)言文本分類、標(biāo)記、語(yǔ)法句法、語(yǔ)義分析等-最優(yōu)秀的Python自然語(yǔ)言處理庫(kù)PyPDF2PyPDF2是一個(gè)專業(yè)且穩(wěn)定的、用于處理PDF文檔的Python庫(kù)-它支持PDF文件信息的提取、文件內(nèi)容的按頁(yè)拆分與合并、頁(yè)面裁剪、內(nèi)容加密與解密等Python-docxPython-docx是一個(gè)用于處理Word文件的Python庫(kù)-它支持Word文件中的標(biāo)題、段落、分頁(yè)符、圖片、表格、文字等信息的管理。10.1Python計(jì)算生態(tài)概述文本處理數(shù)據(jù)可視化是一門研究數(shù)據(jù)視覺表現(xiàn)形式的科學(xué)技術(shù),它既要有效傳達(dá)數(shù)據(jù)信息,也需兼顧信息傳達(dá)的美學(xué)形式,二者缺一不可。10.1Python計(jì)算生態(tài)概述數(shù)據(jù)可視化Python計(jì)算生態(tài)主要通過matplotlib、seaborn、mayavi等庫(kù)為數(shù)據(jù)可視化領(lǐng)域提供支持。庫(kù)名功能說明matplotlibmatplotlib是一個(gè)基于numpy開發(fā)的2DPython繪圖庫(kù)-提供了超過100種數(shù)據(jù)可視化展示效果-通過matplotlib.pyplot子庫(kù)調(diào)用,開發(fā)者編寫幾行代碼便可生成可視化圖表seabornseaborn在matplotlib的基礎(chǔ)上進(jìn)行了更高級(jí)的封裝,支持numpy和pandas,但它比matplotlib調(diào)用更簡(jiǎn)單,效果更豐富,多數(shù)情況下可利用Seaborn繪制具有吸引力的圖表mayavimayavi是一個(gè)用于實(shí)現(xiàn)可視化功能的3DPython繪圖庫(kù),它包含用于實(shí)現(xiàn)圖形可視化和處理圖形操作的mlab模塊,支持Numpy庫(kù)10.1Python計(jì)算生態(tài)概述數(shù)據(jù)可視化10.1Python計(jì)算生態(tài)概述importmatplotlib.pyplotaspltname_list=['Monday','Tuesday','Friday','Sunday']num_list=[1.5,0.6,7.8,6]num_list1=[1,2,3,1]x=list(range(len(num_list)))total_width,n=0.8,2width=total_width/nplt.bar(x,num_list,width=width,label='boy',fc='y')foriinrange(len(x)):x[i]=x[i]+widthplt.bar(x,num_list1,width=width,label='girl',tick_label=name_list,fc='r')plt.legend()plt.show()數(shù)據(jù)可視化二維10.1Python計(jì)算生態(tài)概述數(shù)據(jù)可視化三維人工智能:用機(jī)器模擬人類智能,使機(jī)器會(huì)學(xué)習(xí)、會(huì)思考、會(huì)決策;機(jī)器學(xué)習(xí):是一種實(shí)現(xiàn)人工智能的方法。機(jī)器學(xué)習(xí)最基本的做法,是使用算法來解析數(shù)據(jù)、從中學(xué)習(xí),然后對(duì)真實(shí)世界中的事件做出決策和預(yù)測(cè)。機(jī)器學(xué)習(xí)是人工智能的核心,是使計(jì)算機(jī)具有智能的根本途徑。深度學(xué)習(xí):一種實(shí)現(xiàn)機(jī)器學(xué)習(xí)的技術(shù),以深度神經(jīng)網(wǎng)絡(luò)算法為代表的機(jī)器學(xué)習(xí)方法。10.1Python計(jì)算生態(tài)概述機(jī)器學(xué)習(xí)主要通過Scikit-learn、TensorFlow、MXNet庫(kù)為機(jī)器學(xué)習(xí)、深度學(xué)習(xí)領(lǐng)域提供支持。庫(kù)名功能說明Scikit-learnScikit-learn是Python機(jī)器學(xué)習(xí)領(lǐng)域中最優(yōu)秀的免費(fèi)庫(kù)-提供了一批調(diào)用機(jī)器學(xué)習(xí)方法的接口-提供分類、回歸、聚類、數(shù)據(jù)降維、模型選擇、數(shù)據(jù)預(yù)處理等計(jì)算功能TensorFlowTensorFlow是AlphaGo背后的機(jī)器學(xué)習(xí)計(jì)算框架-由谷歌人工智能團(tuán)隊(duì)開發(fā)和維護(hù)、免費(fèi)且開源的機(jī)器學(xué)習(xí)計(jì)算框架-以數(shù)據(jù)流圖為基礎(chǔ),以圖節(jié)點(diǎn)代表運(yùn)算,邊代表張量MXNetMXNet是基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)計(jì)算框架-提供可擴(kuò)展的神經(jīng)網(wǎng)絡(luò)及深度學(xué)習(xí)計(jì)算功能-可用于自動(dòng)駕駛、機(jī)器翻譯、語(yǔ)音識(shí)別等眾多領(lǐng)域-Python最重要的深度學(xué)習(xí)計(jì)算框架10.1Python計(jì)算生態(tài)概述機(jī)器學(xué)習(xí)圖形用戶界面(GraphicalUserInterface,簡(jiǎn)稱GUI)指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面,該界面允許用戶使用鼠標(biāo)、鍵盤等輸入設(shè)備操縱屏幕上的圖標(biāo)或菜單選項(xiàng),以選擇命令、調(diào)用文件、啟動(dòng)程序或執(zhí)行一些其他的日常任務(wù)。10.1Python計(jì)算生態(tài)概述圖形用戶界面Python計(jì)算生態(tài)通過PyQt5、WxPython、PyGObject庫(kù)為圖形用戶界面領(lǐng)域提供支持,這些庫(kù)各自的功能如表所示。庫(kù)名功能說明PyQt5PyQt5庫(kù)是Python與強(qiáng)大的GUI庫(kù)——Qt的融合,它提供了Qt開發(fā)框架的Python接口,擁有超過300個(gè)類、將近6000個(gè)函數(shù)和方法,可開發(fā)功能強(qiáng)大的圖形用戶界面WxPythonWxPython是跨平臺(tái)庫(kù)WxWidgets的Python版本,該庫(kù)開源、支持跨平臺(tái),允許Python開發(fā)人員創(chuàng)建完整的、功能健全的圖形用戶界面,是一個(gè)優(yōu)秀的GUI庫(kù)PyGObjectPyGObject綁定了Linux下最著名的圖形庫(kù)GTK3+,該庫(kù)簡(jiǎn)單易用、功能強(qiáng)大、設(shè)計(jì)靈活,具有良好的設(shè)計(jì)理念和可擴(kuò)展性,是一個(gè)優(yōu)秀的GUI庫(kù)10.1Python計(jì)算生態(tài)概述圖形用戶界面Web開發(fā)指基于瀏覽器而非桌面進(jìn)行的程序開發(fā)。10.1Python計(jì)算生態(tài)概述Web開發(fā)Python計(jì)算生態(tài)通過Django、Tornado[t???ne?d??]、Flask、Twisted等庫(kù)為Web開發(fā)領(lǐng)域提供了支持,這些庫(kù)各自的功能如表所示。庫(kù)名功能說明DjangoDjango是一個(gè)免費(fèi)開源且功能完善的Web框架,它采用MTV模式,提供URL路由映射、Request上下文和基于模板的頁(yè)面渲染技術(shù),內(nèi)置一個(gè)功能強(qiáng)大的管理站點(diǎn),適用于快速搭建企業(yè)級(jí)、高性能的內(nèi)容類網(wǎng)站,是Python中最流行的Web開發(fā)框架TornadoTornado是一個(gè)高并發(fā)處理框架,它常被用作大型站點(diǎn)的接口服務(wù)框架,而非如Django般建立完整網(wǎng)站的框架。Tornado同樣提供URL路由映射、Request上下文和基于模板的頁(yè)面渲染技術(shù),此外它還支持異步I/O、提供超時(shí)事件處理,內(nèi)置了可直接用于生產(chǎn)環(huán)境的HTTP服務(wù)器FlaskFlask是PythonWeb領(lǐng)域一個(gè)新興框架,它吸收了其他框架的優(yōu)點(diǎn),功能簡(jiǎn)單,但具有可擴(kuò)展性,一般用于實(shí)現(xiàn)小型網(wǎng)站的開發(fā)TwistedDjango、Tornado和Flask是基于應(yīng)用層協(xié)議HTTP展開的框架,而Twisted是一個(gè)由事件驅(qū)動(dòng)的網(wǎng)絡(luò)框架。Twisted支持多種傳輸層和應(yīng)用層協(xié)議,支持客戶端和服務(wù)器雙端開發(fā),適用于開發(fā)追求服務(wù)器程序性能的應(yīng)用10.1Python計(jì)算生態(tài)概述Web開發(fā)網(wǎng)絡(luò)應(yīng)用開發(fā):以網(wǎng)絡(luò)為基礎(chǔ)的應(yīng)用程序的開發(fā),如:微信服務(wù)器信息解析、百度天氣數(shù)據(jù)接口、二維碼生成等。10.1Python計(jì)算生態(tài)概述網(wǎng)絡(luò)應(yīng)用開發(fā)Python計(jì)算生態(tài)通過WeRoBot、aip、MyQR等庫(kù)為網(wǎng)絡(luò)應(yīng)用開發(fā)領(lǐng)域提供支持,這些庫(kù)各自的功能如表所示。庫(kù)名功能說明WeRoBotWeRoBot庫(kù)封裝了很多微信公眾號(hào)接口,提供了解析微信服務(wù)器消息及反饋消息的功能,該庫(kù)簡(jiǎn)單易用,是建立微信機(jī)器人的重要技術(shù)手段aipaip封裝了百度AI開放平臺(tái)接口,利用該庫(kù)中封裝的接口可快速開發(fā)各類網(wǎng)絡(luò)應(yīng)用,如天氣預(yù)報(bào)、在線翻譯、快遞查詢等等MyQRMyQR是一個(gè)用于生成二維碼的Python庫(kù)10.1Python計(jì)算生態(tài)概述網(wǎng)絡(luò)應(yīng)用開發(fā)10.1Python計(jì)算生態(tài)概述游戲開發(fā)游戲開發(fā):2D游戲、3D游戲Python計(jì)算生態(tài)通過PyGame、Panda3D庫(kù)為游戲開發(fā)領(lǐng)域提供支持,這些庫(kù)各自的說明如表所示。庫(kù)名功能說明PyGamepygame是為開發(fā)2D游戲而設(shè)計(jì)的Python第三方跨平臺(tái)庫(kù),開發(fā)人員利用pygame中定義的接口,可以方便快捷地實(shí)現(xiàn)諸如圖形用戶界面創(chuàng)建、圖形和圖像的繪制、用戶鍵盤和鼠標(biāo)操作的監(jiān)聽以及播放音頻等游戲中常用的功能Panda3Dpanda3d是由迪士尼VR工作室和卡耐基梅隆娛樂技術(shù)中心開發(fā)的一個(gè)3D渲染和游戲開發(fā)庫(kù),該庫(kù)強(qiáng)調(diào)能力、速度、完整性和容錯(cuò)能力,提供場(chǎng)景瀏覽器、性能監(jiān)視器和動(dòng)畫優(yōu)化工具,并通過完善代碼來有效降低開發(fā)者跟蹤和分析錯(cuò)誤的難度10.1Python計(jì)算生態(tài)概述游戲開發(fā)圖形藝術(shù)是一種通過標(biāo)志來表現(xiàn)意義的藝術(shù)。標(biāo)志是一些單純、顯著、易識(shí)別的具有指代性或具有表達(dá)意義、情感和指令等作用的物象、圖形或文字符號(hào),也是圖形藝術(shù)的表現(xiàn)手段。10.1Python計(jì)算生態(tài)概述圖形藝術(shù)Python計(jì)算生態(tài)通過Quads、ascii_art和turtle庫(kù)為圖形藝術(shù)領(lǐng)域提供支持,這些庫(kù)各自的說明如表所示。庫(kù)名功能說明QuadsQuads是一個(gè)基于四叉樹和迭代操作的圖形藝術(shù)庫(kù),其功能是以圖像作為輸入,將輸入圖像分為四個(gè)象限,根據(jù)輸入圖像中的顏色為每個(gè)象限分配平均顏色,誤差最大的象限會(huì)被分成四個(gè)子象限以完善圖像,以上過程重復(fù)N次。ascii_artascii_art是一種使用純字符表示圖像的技術(shù),Python的ascii_art庫(kù)提供了對(duì)該技術(shù)的支持,該庫(kù)可對(duì)接收到的圖片進(jìn)行轉(zhuǎn)換,以字符形式重構(gòu)圖片并輸出turtleturtle提供了繪制線、圓以及其他形狀的函數(shù),使用該庫(kù)可以創(chuàng)建圖形窗口,在圖形窗口中通過簡(jiǎn)單重復(fù)動(dòng)作直觀地繪制界面與圖形10.1Python計(jì)算生態(tài)概述圖形藝術(shù)10.1Python計(jì)算生態(tài)概述圖形藝術(shù)字符畫10.1Python計(jì)算生態(tài)概述繪圖圖形藝術(shù)圖像處理:一般指數(shù)字圖像(用工業(yè)相機(jī)、攝像機(jī)和掃描儀等設(shè)備經(jīng)過拍攝得到的一個(gè)大的二維數(shù)組,這個(gè)數(shù)組的元素稱為像素,其值稱為灰度值)處理,圖像處理技術(shù)一般包括圖像壓縮、增強(qiáng)和復(fù)原、圖像匹配、描述和識(shí)別。10.1Python計(jì)算生態(tài)概述圖形處理Python通過Numpy、Scipy、Pillow、OpenCV-Python(計(jì)算機(jī)視覺庫(kù))等庫(kù)為圖像處理領(lǐng)域提供支持。庫(kù)名功能說明Numpy數(shù)字圖像的本質(zhì)是數(shù)組,Numpy定義的數(shù)組類型非常適用于存儲(chǔ)圖像;Numpy提供基于數(shù)組的計(jì)算功能,利用這些功能可以很方便地修改圖像的像素值ScipyScipy提供了對(duì)N維Numpy數(shù)組進(jìn)行運(yùn)算的函數(shù),這些函數(shù)實(shí)現(xiàn)的功能,包括線性和非線性濾波、二值形態(tài)、B樣條插值等都適用于圖像處理PillowPillow庫(kù)是PIL庫(kù)的一個(gè)分支,也是支持Python3的圖像處理庫(kù),該庫(kù)提供了對(duì)不同格式圖像文件的打開和保存操作,也提供了包括點(diǎn)運(yùn)算、色彩空間轉(zhuǎn)換等基本的圖像處理功能OpenCV-PythonOpenCV-Python是OpenCV的Python版API,OpenCV是基于BSD許可發(fā)型的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),該庫(kù)內(nèi)部代碼由C/C++編寫,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法;OpenCV-Python以Python代碼對(duì)OpenCV進(jìn)行封裝,因此該庫(kù)即方便使用又非常高效10.1Python計(jì)算生態(tài)概述圖形處理10.2Python生態(tài)庫(kù)的構(gòu)建與發(fā)布庫(kù):是Python中常常提及的概念,但事實(shí)上Python中的庫(kù)只是一種對(duì)特定功能集合的統(tǒng)一說法而非嚴(yán)格定義。Python庫(kù)的具體表現(xiàn)形式為模塊(Module)和包(Package)下面分這兩部分介紹Python庫(kù)的構(gòu)建與使用,并介紹如何發(fā)布第三方庫(kù)。10.2Python生態(tài)庫(kù)的構(gòu)建與發(fā)布模塊包Python模塊:本質(zhì)上是一個(gè)包含Python代碼片段的.py文件,模塊名就是文件名。創(chuàng)建一個(gè).py文件,在其中編寫功能代碼并保存,便可構(gòu)建一個(gè)模塊。10.2.1模塊的構(gòu)建與使用導(dǎo)入模塊:import包名.模塊名from包名import模塊名10.2.1模塊的構(gòu)建與使用包的構(gòu)建:將模塊放入一個(gè)文件夾,并在該文件夾中創(chuàng)建__init__.py文件(模塊初始化,可以為空,也可導(dǎo)入一些模塊等),就構(gòu)建了一個(gè)Python包。簡(jiǎn)單地說,Python中的包就是以目錄形式組織起來的、具有層級(jí)關(guān)系的多個(gè)模塊。Python包中可以包含子包,包結(jié)構(gòu)示例如圖所示。10.2.2包的構(gòu)建與導(dǎo)入此時(shí)若想在當(dāng)前程序中導(dǎo)入以上包中的模塊module_a,使用的導(dǎo)入語(yǔ)句如下:importpackage.package_a.module_a #方式一frompackage.package_aimportmodule_a #方式二10.2.2包的構(gòu)建與導(dǎo)入Python中的第三方庫(kù)是由Python使用者自行編寫與發(fā)布的模塊或包,同樣的,我們也可以將自己編寫的模塊與包作為庫(kù)發(fā)布。具體步驟如下:1.在與待發(fā)布的包同級(jí)的目錄中創(chuàng)建setup.py文件。2.編輯setup.py文件,在該文件中設(shè)置包中包含的模塊。10.2.3庫(kù)的發(fā)布fromdistutils.coreimportsetupsetup(name='lib_test',version='1.0',description='functionpackage',author='lucky',py_modules=['mypack1.drawpyplot','mypack1.classtest'])3.在setup.py文件所在目錄下打開命令行,使用pythonsetup.pybuild命令構(gòu)建Python庫(kù)。4.在setup.py文件所在目錄下打開命令行,使用pythonsetup.pysdist命令創(chuàng)建庫(kù)的安裝包。10.2.3庫(kù)的發(fā)布安裝我們發(fā)布的庫(kù):1.先解壓lib_test-1.0.tar.gz,再解壓lib_test-1.0.tar,lib_test-1.0文件夾內(nèi)包含setup.py文件2.在setup.py所在的目錄下執(zhí)行如下命令:pythonsetup.pyinstall10.2.3庫(kù)的發(fā)布小結(jié)第10講Python計(jì)算生態(tài)及常用庫(kù)(2)常用的內(nèi)置生態(tài)庫(kù)學(xué)習(xí)目標(biāo)本講要點(diǎn)10.3常用的內(nèi)置Python庫(kù)time庫(kù)time是最基礎(chǔ)的時(shí)間處理庫(kù),該庫(kù)本質(zhì)上是一個(gè)模塊,它包含的所有內(nèi)容都定義在time.py文件中。該庫(kù)中定義了time()、strftime()、localtime()、sleep()和一些用于實(shí)現(xiàn)時(shí)間格式轉(zhuǎn)換的函數(shù)。time()函數(shù)——時(shí)間戳time()函數(shù)返回以浮點(diǎn)數(shù)表示的從世界標(biāo)準(zhǔn)時(shí)間的1970年1月1日00:00:00開始到現(xiàn)在的以秒為單位的浮點(diǎn)小數(shù),也就是時(shí)間戳。10.3.1time庫(kù)示例localtime()與gmtime()函數(shù)localtime()函數(shù)和gmtime()函數(shù)都可將時(shí)間戳轉(zhuǎn)換為以元組表示的時(shí)間對(duì)象(struct_time),localtime()得到的是當(dāng)?shù)貢r(shí)間,gmtime()得到的是世界統(tǒng)一時(shí)間(CoordinatedUniversalTime,簡(jiǎn)稱UTC),它們的語(yǔ)法格式如下:localtime([secs])gmtime([secs])參數(shù)secs是一個(gè)表示時(shí)間戳的浮點(diǎn)數(shù),若不提供該參數(shù),默認(rèn)以time()函數(shù)獲取的時(shí)間戳作為參數(shù)。10.3.1time庫(kù)時(shí)間元組struct_time元組元素的含義與取值元素含義取值tm_year年4位數(shù)字tm_mon月1~12tm_mday日1~31tm_hour時(shí)0~23tm_min分0~59tm_sec秒0~61(60或61是閏秒)tm_wday一周的第幾日0~6(0為周一,依此類推)tm_yday一年的第幾日1~366tm_isdst夏令時(shí)1:是夏令時(shí)0:非夏令時(shí)-1:不確定10.3.1time庫(kù)時(shí)間元組用9組數(shù)字構(gòu)成的一個(gè)元組,分別表示不同的時(shí)間元素strftime()函數(shù):借助時(shí)間格式控制符來輸出格式化的時(shí)間字符串,該函數(shù)的語(yǔ)法格式如下:strftime(format[,t])參數(shù)format是指帶時(shí)間格式的字符串。參數(shù)t為struct_time對(duì)象,該參數(shù)可以省略,默認(rèn)為當(dāng)前時(shí)間。10.3.1time庫(kù)時(shí)間格式控制符時(shí)間格式控制符說明%Y四位數(shù)的年份表示,取值范圍為0001~9999%m月份(01~12)%d月內(nèi)中的一天%B本地完整的月份名稱,比如January%b本地簡(jiǎn)化的月份名稱,比如Jan%a本地簡(jiǎn)化的周日期%A本地完整周日期%H24小時(shí)制小時(shí)數(shù)(0~23)%l12小時(shí)制小時(shí)數(shù)(01~12)%pAP或PM%M分鐘數(shù)(00~59)%S秒(00~59)10.3.1time庫(kù)strftime()函數(shù)10.3.1time庫(kù)strftime()函數(shù)#格式化成2021-03-2011:45:39形式print(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))sleep()函數(shù):可讓調(diào)用該函數(shù)的程序進(jìn)入睡眠態(tài),即讓其暫時(shí)掛起,等待一定時(shí)間后再繼續(xù)執(zhí)行。sleep()函數(shù)接收一個(gè)以秒為單位的浮點(diǎn)數(shù)作為參數(shù),使用該參數(shù)控制進(jìn)程或線程掛起的時(shí)長(zhǎng)。10.3.1time庫(kù)10.3.3turtle庫(kù)turle繪圖模塊turtle(海龜)是Python內(nèi)置的一個(gè)標(biāo)準(zhǔn)模塊,它提供了繪制線、圓以及其它形狀的函數(shù),使用該模塊可以創(chuàng)建圖形窗口,在圖形窗口中通過簡(jiǎn)單重復(fù)動(dòng)作直觀地繪制界面與圖形。turtle的使用主要分為以下三個(gè)方面:創(chuàng)建窗口設(shè)置畫布繪制圖形10.3.3turtle庫(kù)1.創(chuàng)建窗口圖形窗口也稱為畫布(canas)。使用turtle模塊繪制圖形化界面,需要先使用setup()函數(shù)創(chuàng)建圖形窗口,缺省時(shí)自動(dòng)設(shè)置尺寸和位置。turtle.setup(width,height,startx=None,starty=None)參數(shù)含義:width:

窗口寬度——值為整數(shù)時(shí),表示以像素為單位的尺寸;height:窗口高度startx:窗口在計(jì)算機(jī)屏幕上的橫坐標(biāo)——可以為整數(shù)或None,當(dāng)取值為整數(shù)時(shí),分別表示圖形窗口左側(cè)與屏幕左側(cè)的距離(像素),當(dāng)取值為None時(shí),窗口位于屏幕中心。starty:窗口在計(jì)算機(jī)屏幕上的縱坐標(biāo)10.3.3turtle庫(kù)2.設(shè)置畫(pen):設(shè)置畫筆屬性,如:尺寸、顏色、狀態(tài)等。

turtle.pensize(width) #設(shè)置畫筆尺寸,線條的寬度turtle.speed(speed) #設(shè)置畫筆移動(dòng)速度,值越大越快turtle.color(color1,color2)#設(shè)置畫筆顏色,color1線條色,color2填充色(1)畫筆屬性函數(shù)10.3.3turtle庫(kù)turtle.penup()

#提起畫筆,不顯示筆痕turtle.pendown()

#放下畫筆,顯示筆痕(2)畫筆狀態(tài)函數(shù)說明:turtle模塊中為penup()和pendown()函數(shù)定義了別名;penup()函數(shù)的別名為pu();pendown()函數(shù)的別名為pd()。10.3.3turtle庫(kù)3.繪制圖形在畫筆狀態(tài)為down時(shí),通過移動(dòng)畫筆可以在畫布上繪制圖形,可以將畫筆想象成一只海龜,這也是turtle模塊名字的由來:海龜落在畫布上,它可以向前、向后、向左、向右移動(dòng),海龜爬動(dòng)時(shí)在畫布上留下痕跡,路徑即為所繪圖形。10.3.3turtle庫(kù)

操縱海龜繪圖有著許多的命令,這些命令可以劃分為3種:1.運(yùn)動(dòng)命令2.畫筆控制命令3.全局控制命令10.3.3turtle庫(kù)(1)

畫筆運(yùn)動(dòng)命令10.3.3turtle庫(kù)(2)

畫筆控制命令10.3.3turtle庫(kù)(3)

全局控制命令turtle.clear()清空turtle窗口,但是turtle的位置和狀態(tài)不會(huì)改變turtle.reset()清空窗口,重置turtle狀態(tài)為起始位置turtle.undo()撤銷上一個(gè)turtle動(dòng)作turtle.mainloop()或turtle.done()——啟動(dòng)事件循環(huán),否則窗口關(guān)閉10.3.3turtle庫(kù)3.繪制圖形(1)移動(dòng)控制函數(shù)turtle.forward(distance) #向前移動(dòng)turtle.backward(distance) #向后移動(dòng)turtle.goto(x,y=None) #移動(dòng)到指定位置參數(shù)含義:函數(shù)forward()和backward()的參數(shù)distance用于指定畫筆移動(dòng)的距離,單位為像素;函數(shù)goto()用于將畫筆移動(dòng)到畫布上指定的位置,該函數(shù)可以使用x、y分別接收表示目標(biāo)位置的橫坐標(biāo)和縱坐標(biāo),也可以僅接收一個(gè)表示坐標(biāo)向量的參數(shù)。10.3.3turtle庫(kù)(2)角度控制函數(shù)turtle.right(degree) #向右轉(zhuǎn)動(dòng)turtle.left(degree) #向左轉(zhuǎn)動(dòng)turtle.seth(angle) #轉(zhuǎn)動(dòng)到某個(gè)方向參數(shù)含義:函數(shù)right()和left()的參數(shù)degree用于指定畫筆向右與向左的角度;函數(shù)seth()的參數(shù)angle用于設(shè)置畫筆在坐標(biāo)系中的角度。10.3.3turtle庫(kù)(3)繪制函數(shù)turtle.circle(radius,extent=None,steps=None)參數(shù)含義:參數(shù)radius用于設(shè)置半徑;當(dāng)radius為正時(shí),畫筆以原點(diǎn)為起點(diǎn)向上繪制弧線;radius為負(fù)時(shí),畫筆以原點(diǎn)為起點(diǎn)向下繪制弧線。參數(shù)extent用于設(shè)置弧的角度。當(dāng)extent為正時(shí),畫筆以原點(diǎn)為起點(diǎn)向右繪制弧線;extent為負(fù)時(shí),畫筆以原點(diǎn)為起點(diǎn)向左繪制弧線。steps用于設(shè)置步數(shù),繪制多邊形10.3.3turtle庫(kù)(4)圖形填充turtle.begin_fill()

#開始填充turtle.end_fill()

#結(jié)束填充10.4精彩實(shí)例本實(shí)例要求編寫程序,在程序中利用turtle模塊繪制幾何圖形,繪制效果如圖所示。10.4.1圖形繪制10.4.1圖形繪制10.4.1圖形繪制10.4.1圖形繪制importturtle

#同時(shí)設(shè)置pencolor=color1,fillcolor=color2

defdraw_star(n):

turtle.color("red","yellow")

turtle.begin_fill()

for_inrange(n):#角的個(gè)數(shù),單數(shù)

turtle.forward(150)#線的長(zhǎng)度

turtle.right(180-180/n)#順時(shí)針旋轉(zhuǎn)角度

turtle.end_fill()

turtle.title('星星繪制')

turtle.penup()

turtle.speed(10)

turtle.goto(-200,100)

turtle.pendown()

draw_star(5)#繪制五角星星星繪制:小結(jié)第10講Python計(jì)算生態(tài)及常用庫(kù)(3)常用的第三方Python庫(kù)學(xué)習(xí)目標(biāo)本講要點(diǎn)10.5常用的第三方Python庫(kù)10.5.1jieba庫(kù)中文分詞中文分詞是指將一個(gè)漢字序列切分成一個(gè)一個(gè)單獨(dú)的詞,也就是說將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程,其作用就是將用戶輸入的中文語(yǔ)句或語(yǔ)段拆成若干漢語(yǔ)詞匯。示例:我是一個(gè)學(xué)生我是一個(gè)學(xué)生中文分詞模塊——jiebapipinstalljieba/pip3installjieba安裝jieba導(dǎo)入jiebaimportjiebajieba模塊的分詞模式精確模式全模式搜索引擎模式10.5.1jieba庫(kù)常用分詞函數(shù)函數(shù)功能說明jieba.cut(s)采用精準(zhǔn)模式對(duì)文本s進(jìn)行分詞,返回一個(gè)可迭代對(duì)象jieba.cut(s,cut_all=True)默認(rèn)采用全模式對(duì)文本s進(jìn)行分詞,輸出文本s中出現(xiàn)的所有詞。jieba.cut_for_search(s)采用搜索引擎模式對(duì)文本s進(jìn)行分詞jieba.lcut(s)采用精準(zhǔn)模式對(duì)文本s進(jìn)行分詞,分詞結(jié)果以列表形式返回jieba.lcut(s,cut_all=True)采用全模式對(duì)文本s進(jìn)行分詞,分詞結(jié)果以列表形式返回jieba.lcut_for_search(s)采用搜索引擎模式對(duì)文本s進(jìn)行分詞,分詞結(jié)果以列表形式返回10.5.1jieba庫(kù)importjiebaseg_list=jieba.cut("我打算到中國(guó)科學(xué)研究院圖書館學(xué)習(xí)",cut_all=True)print("【全模式】:"+"/".join(seg_list))#全模式seg_list=jieba.lcut("我打算到中國(guó)科學(xué)研究院圖書館學(xué)習(xí)")print("【精確模式】:"+"/".join(seg_list))#精確模式#搜索引擎模式seg_list=jieba.cut_for_search("我打算到中國(guó)科學(xué)研究院圖書館學(xué)習(xí)")print("【搜索引擎模式】:"+",".join(seg_list))示例:分別采用三種模式對(duì)中文進(jìn)行分詞操作10.5.1jieba庫(kù)wordcloud庫(kù)Python的第三方庫(kù)wordcloud是專用于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論