




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章Python計算生態(tài)·Python計算生態(tài)·各應用領域的常用庫·time庫、random庫·turtle庫·jieba庫·wordcloud庫·pygame庫8.1概述Python計算生態(tài)涵蓋網(wǎng)絡爬蟲、數(shù)據(jù)分析、文本處理、數(shù)據(jù)可視化、圖形用戶界面、機器學習、Web開發(fā)、網(wǎng)絡應用開發(fā)、游戲開發(fā)、虛擬現(xiàn)實、圖形藝術等多個領域,為各個領域的Python使用者提供了極大便利。8.1Python計算生態(tài)概述網(wǎng)絡爬蟲是一種按照一定的規(guī)則,自動從網(wǎng)絡上抓取信息的程序或者腳本。通過網(wǎng)絡爬蟲可以代替手工完成很多工作。8.1Python計算生態(tài)概述網(wǎng)絡爬蟲程序涉及HTTP請求、Web信息提取、網(wǎng)頁數(shù)據(jù)解析等操作,Python計算生態(tài)通過Requests、Python-Goose、Re、BeautifulSoup、Scrapy和PySpider等庫為這些操作提供了強有力的支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明RequestsRequests提供了簡單易用的類HTTP協(xié)議,支持連接池、SSL、Cookies,是Python最主要的、功能最豐富的網(wǎng)絡爬蟲功能庫Python-GoosePython-Goose專用于從文章、視頻類型的Web頁面中提取數(shù)據(jù)ReRe提供了定義和解析正則表達式的一系列通用功能,除網(wǎng)絡爬蟲外,還適用于各類需要解析數(shù)據(jù)的場景BeautifulSoupBeautifulSoup用于從HTML、XML等Web頁面中提取數(shù)據(jù),它提供一些便捷的、Python式的函數(shù),使用起來非常簡單ScrapyScrapy支持快速、高層次的屏幕抓取和批量、定時的Web抓取以及結構性數(shù)據(jù)的抓取,是一款優(yōu)秀的網(wǎng)絡爬蟲框架PySpiderPySpider也是一款爬蟲框架,它支持數(shù)據(jù)庫后端、消息隊列、優(yōu)先級、分布式架構等功能。與Scrapy相比,它靈活便捷,更適合小規(guī)模的爬取工作數(shù)據(jù)分析指用適當?shù)慕y(tǒng)計分析方法對收集來的大量數(shù)據(jù)進行分析,將它們加以匯總、理解與消化,以求最大化地發(fā)揮數(shù)據(jù)的作用。8.1Python計算生態(tài)概述Python計算生態(tài)通過Numpy、Pandas、SciPy庫為數(shù)據(jù)分析領域提供支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明Numpy數(shù)據(jù)分析離不開科學計算,Numpy定義了表示N維數(shù)組對象的類型ndarray,通過ndarray對象可以便捷地存儲和處理大型矩陣;包含了成熟的用于實現(xiàn)線性代數(shù)、傅里葉變換和隨機數(shù)生成的函數(shù),能以優(yōu)異的效率實現(xiàn)科學計算PandasPandas是一個基于Numpy開發(fā)的、用于分析結構化數(shù)據(jù)的工具集,它為解決數(shù)據(jù)分析任務而生,同時提供數(shù)據(jù)挖掘和數(shù)據(jù)清洗功能SciPyScipy是Python科學計算程序中會使用的核心庫,它用于有效地計算Numpy矩陣,可以處理插值、積分、優(yōu)化等問題,也能處理圖像和信號、求解常微分方程數(shù)值文本指書面語言的表現(xiàn)形式,從文學角度說,文本是具有完整、系統(tǒng)含義的一個句子或多個句子的組合。文本處理即對文本內容的處理,包括文本內容的分類、文本特征的提取、文本內容的轉換等等。8.1Python計算生態(tài)概述Python計算生態(tài)通過Jieba、PyPDF2、Python-docx、NLTK等庫為文本處理領域提供支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明JiebaJieba是一個優(yōu)秀的Python中文分詞庫,它支持精確模式、全模式和搜索引擎模式這三種分詞模式,支持繁體分詞、自定義字典,可有效標注詞性,從文本中提取關鍵詞NLTKNLTK提供了用于訪問超過50個語料庫和語匯資源的接口,支持文本分類、標記、解析和語法、語義分析等功能,簡單、易用且高效,是最優(yōu)秀的Python自然語言處理庫PyPDF2PyPDF2是一個專業(yè)且穩(wěn)定的、用于處理PDF文檔的Python庫,它支持PDF文件信息的提取、文件內容的按頁拆分與合并、頁面裁剪、內容加密與解密等Python-docxPython-docx是一個用于處理Word文件的Python庫,它支持Word文件中的標題、段落、分頁符、圖片、表格、文字等信息的管理,上手非常簡單數(shù)據(jù)可視化是一門關于數(shù)據(jù)視覺表現(xiàn)形式的科學技術研究,它既要有效傳達數(shù)據(jù)信息,也需兼顧信息傳達的美學形式,二者缺一不可。8.1Python計算生態(tài)概述Python計算生態(tài)主要通過Matplotlib、Seaborn、Mayavi等庫為數(shù)據(jù)可視化領域提供支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明MatplotlibMatplotlib是一個基于Numpy開發(fā)的2DPython繪圖庫,該庫提供了上百種圖形化的數(shù)據(jù)展示形式。Matplotlib庫中pyplot包內包含一系列類似MATLAB中繪圖功能的函數(shù),利用Matplotlib.pyplot,開發(fā)者編寫幾行代碼便可生成可視化圖表SeabornSeaborn在Matplotlib的基礎上進行了更高級的封裝,支持Numpy和Pandas,但它比Matplotlib調用更簡單,效果更豐富,多數(shù)情況下可利用Seaborn繪制具有吸引力的圖表MayaviMayavi是一個用于實現(xiàn)可視化功能的3DPython繪圖庫,它包含用于實現(xiàn)圖形可視化和處理圖形操作的mlab模塊,支持Numpy庫機器學習是一門涉及概率論、統(tǒng)計學、逼近論、凸分析、算法復雜度理論等多門學科的多領域交叉學科,該學科旨在研究計算機如何模擬或實現(xiàn)人類的學習行為,以獲取新的知識或技能、重新組織已有知識結構并不斷改善自身。機器學習是人工智能的核心,是使計算機具有智能的根本途徑。8.1Python計算生態(tài)概述Python計算生態(tài)主要通過Scikit-learn、TensorFlow、MXNet庫為機器學習領域提供支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明Scikit-learnScikit-learn支持分類、回歸、聚類、數(shù)據(jù)降維、模型選擇、數(shù)據(jù)預處理,它提供了一批調用機器學習方法的接口,是Python機器學習領域中最優(yōu)秀的免費庫TensorFlowTensorFlow是一款以數(shù)據(jù)流圖為基礎,由谷歌人工智能團隊開發(fā)和維護、免費且開源的機器學習計算框架,該框架支撐谷歌人工智能應用,提供了各類應用程序接口MXNetMXNet是一個輕量級分布式可移植深度學習庫,它支持多機多節(jié)點多GPU計算,提供可擴展的神經(jīng)網(wǎng)絡以及深度學習計算功能,可用于自動駕駛、語音識別等領域圖形用戶界面(GraphicalUserInterface,簡稱GUI)指采用圖形方式顯示的計算機操作用戶界面,該界面允許用戶使用鼠標、鍵盤等輸入設備操縱屏幕上的圖標或菜單選項,以選擇命令、調用文件、啟動程序或執(zhí)行一些其他的日常任務。8.1Python計算生態(tài)概述Python計算生態(tài)通過PyQt5、WxPython、PyGObject庫為圖形用戶界面領域提供支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明PyQt5PyQt5庫是Python與強大的GUI庫——Qt的融合,它提供了Qt開發(fā)框架的Python接口,擁有超過300個類、將近6000個函數(shù)和方法,可開發(fā)功能強大的圖形用戶界面WxPythonWxPython是跨平臺庫WxWidgets的Python版本,該庫開源、支持跨平臺,允許Python開發(fā)人員創(chuàng)建完整的、功能健全的圖形用戶界面,是一個優(yōu)秀的GUI庫PyGObjectPyGObject綁定了Linux下最著名的圖形庫GTK3+,該庫簡單易用、功能強大、設計靈活,具有良好的設計理念和可擴展性,是一個優(yōu)秀的GUI庫Web開發(fā)指基于瀏覽器而非桌面進行的程序開發(fā)。8.1Python計算生態(tài)概述Python計算生態(tài)通過Django、Tornado、Flask、Twisted等庫為Web開發(fā)領域提供了支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明DjangoDjango是一個免費開源且功能完善的Web框架,它采用MTV模式,提供URL路由映射、Request上下文和基于模板的頁面渲染技術,內置一個功能強大的管理站點,適用于快速搭建企業(yè)級、高性能的內容類網(wǎng)站,是Python中最流行的Web開發(fā)框架TornadoTornado是一個高并發(fā)處理框架,它常被用作大型站點的接口服務框架,而非如Django般建立完整網(wǎng)站的框架。Tornado同樣提供URL路由映射、Request上下文和基于模板的頁面渲染技術,此外它還支持異步I/O、提供超時事件處理,內置了可直接用于生產(chǎn)環(huán)境的HTTP服務器FlaskFlask是PythonWeb領域一個新興框架,它吸收了其他框架的優(yōu)點,功能簡單,但具有可擴展性,一般用于實現(xiàn)小型網(wǎng)站的開發(fā)TwistedDjango、Tornado和Flask是基于應用層協(xié)議HTTP展開的框架,而Twisted是一個由事件驅動的網(wǎng)絡框架。Twisted支持多種傳輸層和應用層協(xié)議,支持客戶端和服務器雙端開發(fā),適用于開發(fā)追求服務器程序性能的應用網(wǎng)絡應用開發(fā)指以網(wǎng)絡為基礎的應用程序的開發(fā)。8.1Python計算生態(tài)概述Python計算生態(tài)通過WeRoBot、aip、MyQR等庫為網(wǎng)絡應用開發(fā)領域提供支持,這些庫各自的功能如表所示。8.1Python計算生態(tài)概述庫名功能說明WeRoBotWeRoBot庫封裝了很多微信公眾號接口,提供了解析微信服務器消息及反饋消息的功能,該庫簡單易用,是建立微信機器人的重要技術手段aipaip封裝了百度AI開放平臺接口,利用該庫中封裝的接口可快速開發(fā)各類網(wǎng)絡應用,如天氣預報、在線翻譯、快遞查詢等等MyQRMyQR是一個用于生成二維碼的Python庫Python計算生態(tài)通過PyGame、Panda3D庫為游戲開發(fā)領域提供支持,這些庫各自的說明如表所示。8.1Python計算生態(tài)概述庫名功能說明PyGamepygame是為開發(fā)2D游戲而設計的Python第三方跨平臺庫,開發(fā)人員利用pygame中定義的接口,可以方便快捷地實現(xiàn)諸如圖形用戶界面創(chuàng)建、圖形和圖像的繪制、用戶鍵盤和鼠標操作的監(jiān)聽以及播放音頻等游戲中常用的功能Panda3Dpanda3d是由迪士尼VR工作室和卡耐基梅隆娛樂技術中心開發(fā)的一個3D渲染和游戲開發(fā)庫,該庫強調能力、速度、完整性和容錯能力,提供場景瀏覽器、性能監(jiān)視器和動畫優(yōu)化工具,并通過完善代碼來有效降低開發(fā)者跟蹤和分析錯誤的難度圖形藝術是一種通過標志來表現(xiàn)意義的藝術。標志是一些單純、顯著、易識別的具有指代性或具有表達意義、情感和指令等作用的物象、圖形或文字符號,也是圖形藝術的表現(xiàn)手段。8.1Python計算生態(tài)概述Python計算生態(tài)通過Quads、ascii_art和turtle庫為圖形藝術領域提供支持,這些庫各自的說明如表所示。8.1Python計算生態(tài)概述庫名功能說明QuadsQuads是一個基于四叉樹和迭代操作的圖形藝術庫,其功能是以圖像作為輸入,將輸入圖像分為四個象限,根據(jù)輸入圖像中的顏色為每個象限分配平均顏色,誤差最大的象限會被分成四個子象限以完善圖像,以上過程重復N次ascii_artascii_art是一種使用純字符表示圖像的技術,Python的ascii_art庫提供了對該技術的支持,該庫可對接收到的圖片進行轉換,以字符形式重構圖片并輸出turtleturtle提供了繪制線、圓以及其他形狀的函數(shù),使用該庫可以創(chuàng)建圖形窗口,在圖形窗口中通過簡單重復動作直觀地繪制界面與圖形圖像處理一般指數(shù)字圖像(數(shù)字圖像是指用工業(yè)相機、攝像機和掃描儀等設備經(jīng)過拍攝得到的一個大的二維數(shù)組,這個數(shù)組的元素稱為像素,其值稱為灰度值)處理,圖像處理技術一般包括圖像壓縮、增強和復原、圖像匹配、描述和識別。8.1Python計算生態(tài)概述Python通過Numpy、Scipy、Pillow、OpenCV-Python等庫為圖像處理領域提供支持,這些庫各自的說明如表所示。8.1Python計算生態(tài)概述庫名功能說明Numpy數(shù)字圖像的本質是數(shù)組,Numpy定義的數(shù)組類型非常適用于存儲圖像;Numpy提供基于數(shù)組的計算功能,利用這些功能可以很方便地修改圖像的像素值ScipyScipy提供了對N維Numpy數(shù)組進行運算的函數(shù),這些函數(shù)實現(xiàn)的功能,包括線性和非線性濾波、二值形態(tài)、B樣條插值等都適用于圖像處理PillowPillow庫是PIL庫的一個分支,也是支持Python3的圖像處理庫,該庫提供了對不同格式圖像文件的打開和保存操作,也提供了包括點運算、色彩空間轉換等基本的圖像處理功能OpenCV-PythonOpenCV-Python是OpenCV的Python版API,OpenCV是基于BSD許可發(fā)型的跨平臺計算機視覺庫,該庫內部代碼由C/C++編寫,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法;OpenCV-Python以Python代碼對OpenCV進行封裝,因此該庫即方便使用又非常高效8.2標準庫turtle繪圖模塊turtle(海龜)是Python內置的一個標準模塊,它提供了繪制線、圓以及其它形狀的函數(shù),使用該模塊可以創(chuàng)建圖形窗口,在圖形窗口中通過簡單重復動作直觀地繪制界面與圖形。創(chuàng)建窗口設置畫布繪制圖形turtle的使用主要分為以下三個方面:8.2.1turtle庫10.3.3turtle庫創(chuàng)建窗口圖形窗口也稱為畫布(canas)。控制臺無法繪制圖形,使用turtle模塊繪制圖形化界面,需要先使用setup()函數(shù)創(chuàng)建圖形窗口。turtle.setup(width,height,startx=None,starty=None)width:窗口寬度height:窗口高度startx:窗口在計算機屏幕上的橫坐標starty:窗口在計算機屏幕上的縱坐標參數(shù)含義:值為整數(shù)時,表示以像素為單位的尺寸;值為小數(shù)時,表示圖形窗口的寬或高與屏幕的比例startx、starty的取值可以為整數(shù)或None;當取值為整數(shù)時,分別表示圖形窗口左側、頂部與屏幕左側、頂部的距離(單位為像素);當取值為None時,窗口位于屏幕中心。10.3.3turtle庫設置畫筆畫筆(pen)的設置包括畫筆屬性,如尺寸、顏色的設置,和畫筆狀態(tài)的設置。
turtle.pensize(<width>) #設置畫筆尺寸turtle.speed(speed) #設置畫筆移動速度turtle.color(color) #設置畫筆顏色(1)畫筆屬性函數(shù)pensize()函數(shù)的參數(shù)width可以設置畫筆繪制出的線條的寬度。speed()函數(shù)的參數(shù)speed用于設置畫筆移動的速度。color()函數(shù)的參數(shù)color用于設置畫筆的顏色。參數(shù)含義:10.3.3turtle庫設置畫筆turtle.penup()
#提起畫筆turtle.pendown()
#放下畫筆(2)畫筆狀態(tài)函數(shù)turtle模塊中為penup()和pendown()函數(shù)定義了別名;penup()函數(shù)的別名為pu();pendown()函數(shù)的別名為pd()。說明:10.3.3turtle庫繪制圖形在畫筆狀態(tài)為DOWN時,通過移動畫筆可以在畫布上繪制圖形,可以將畫筆想象成一只海龜(這也是turtle模塊名字的由來):海龜落在畫布上,它可以向前、向后、向左、向右移動,海龜爬動時在畫布上留下痕跡,路徑即為所繪圖形。(1)移動控制函數(shù)turtle.forward(distance) #向前移動turtle.backward(distance) #向后移動turtle.goto(x,y=None) #移動到指定位置函數(shù)forward()和backward()的參數(shù)distance用于指定畫筆移動的距離,單位為像素;函數(shù)goto()用于將畫筆移動到畫布上指定的位置,該函數(shù)可以使用x、y分別接收表示目標位置的橫坐標和縱坐標,也可以僅接收一個表示坐標向量的參數(shù)。參數(shù)含義:10.3.3turtle庫繪制圖形(2)角度控制函數(shù)turtle.right(degree) #向右轉動turtle.left(degree) #向左轉動turtle.seth(angle) #轉動到某個方向函數(shù)right()和left()的參數(shù)degree用于指定畫筆向右與向左的角度;函數(shù)seth()的參數(shù)angle用于設置畫筆在坐標系中的角度。參數(shù)含義:10.3.3turtle庫繪制圖形(3)繪制函數(shù)turtle.circle(radius,extent=None,steps=None)參數(shù)radius用于設置半徑;參數(shù)extent用于設置弧的角度。參數(shù)含義:當radius為正時,畫筆以原點為起點向上繪制弧線;radius為負時,畫筆以原點為起點向下繪制弧線。當extent為正時,畫筆以原點為起點向右繪制弧線;extent為負時,畫筆以原點為起點向左繪制弧線。10.3.3turtle庫繪制圖形(4)圖形填充turtle.begin_fill()
#開始填充turtle.end_fill()
#結束填充本實例要求編寫程序,在程序中利用turtle模塊繪制幾何圖形,繪制效果如圖所示。8.2.1turtle圖形繪制本實例要求利用turtle和time繪制下圖所示的鐘表,并使鐘表的日期、周日期、時間跟隨本地時間實時變化。8.2.1turtle圖形繪制8.2.2random庫random是Python內置的標準庫,在程序中導入該庫,可利用庫中的函數(shù)生成隨機數(shù)據(jù)。random庫中常用的函數(shù)如表所示。函數(shù)功能說明random.random()用于生成一個隨機浮點數(shù)n,0<=n<1.0random.uniform(a,b)用于生成一個指定范圍內的隨機浮點數(shù)n,若a<b,則a<=n<=b;若a>b,則b<=n<=arandom.randint(a,b)用于生成一個指定范圍內的整數(shù)n,a<=n<=brandom.randrange([start,]stop[,step])生成一個按指定基數(shù)遞增的序列,再從該序列中獲取一個隨機數(shù)random.choice(sequence)從序列中獲取一個隨機元素,參數(shù)sequence表示一個有序類型random.shuffle(x[,random])將序列x中的元素隨機排列random.sample(sequence,k)從指定序列中獲取長度為k的片段,隨機排列后返回新的序列。該函數(shù)可以基于不可變序列進行操作8.2.2random庫【例8-10】編程實現(xiàn)一個自動出題系統(tǒng),系統(tǒng)產(chǎn)生2個隨機的3位整數(shù),再產(chǎn)生隨機的加減乘除號,合成題目,print輸出題目,接收用戶輸入的答案,判斷正確。importrandoma=random.randint(100,999)b=random.randint(100,999)c=random.choice(['+','-','*','/'])d=eval(input(str(a)+c+str(b)+'='))ifd==eval(str(a)+c+str(b)):print('回答正確')else:print('回答錯誤')8.2.2random庫【例8-11】編程實現(xiàn)一個自動出題系統(tǒng),系統(tǒng)產(chǎn)生2個隨機的3位整數(shù),再產(chǎn)生隨機的加減乘除號,合成題目,print輸出題目,接收用戶輸入的答案,判斷正確,循環(huán)產(chǎn)生10道題,輸出10道題的答對的題目數(shù)。importrandoms=0foriinrange(10):a=random.randint(100,999)b=random.randint(100,999)c=random.choice(['+','-'])d=eval(input(str(a)+c+str(b)+'=?'))ifd==eval(str(a)+c+str(b)):s+=1else:s+=0print('答對數(shù)目:'+str(s))8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。time()函數(shù)time()函數(shù)返回以浮點數(shù)表示的從世界標準時間的1970年1月1日00:00:00開始到現(xiàn)在的總秒數(shù),也就是時間戳。8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。localtime()與gmtime()函數(shù)localtime()函數(shù)和gmtime()函數(shù)都可將時間戳轉換為以元組表示的時間對象(struct_time),localtime()得到的是當?shù)貢r間,gmtime()得到的是世界統(tǒng)一時間(CoordinatedUniversalTime,簡稱UTC),它們的語法格式如下:localtime([secs])gmtime([secs])參數(shù)secs是一個表示時間戳的浮點數(shù),若不提供該參數(shù),默認以time()函數(shù)獲取的時間戳作為參數(shù)。8.2.3time庫struct_time元組元素的含義與取值元素含義取值tm_year年4位數(shù)字tm_mon月1~12tm_mday日1~31tm_hour時0~23tm_min分0~59tm_sec秒0~61(60或61是閏秒)tm_wday一周的第幾日0~6(0為周一,依此類推)tm_yday一年的第幾日1~366tm_isdst夏令時1:是夏令時0:非夏令時-1:不確定8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。strftime()和asctime()函數(shù)strftime()函數(shù)借助時間格式控制符來輸出格式化的時間字符串,該函數(shù)的語法格式如下:strftime(format[,t])參數(shù)format是指代時間格式的字符串。參數(shù)t為struct_time對象,默認為當前時間,即localtime()函數(shù)返回的時間,該參數(shù)可以省略。8.2.3time庫時間格式控制符時間格式控制符說明%Y四位數(shù)的年份,取值范圍為0001~9999%m月份(01~12)%d月中的一天%B本地完整的月份名稱,比如January%b本地簡化的月份名稱,比如Jan%a本地簡化的周日期%A本地完整周日期%H24小時制小時數(shù)(0~23)%l12小時制小時數(shù)(01~12)%p上下午,AP或PM%M分鐘數(shù)(00~59)%S秒(00~59)8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。strftime()和asctime()函數(shù)asctime()函數(shù)同樣用于輸出格式化的時間字符串,但它只將struct_time對象轉化為SatJan1321:56:342018'這種形式。asctime()函數(shù)的語法格式如下:asctime([t])以上格式中的參數(shù)t與和strftime()函數(shù)的參數(shù)t意義相同。8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。ctime()函數(shù)ctime()函數(shù)用于將一個時間戳(以秒為單位的浮點數(shù))轉換為'SatJan1321:56:342018'這種形式(結果同time.asctime()),若該函數(shù)未接收到參數(shù),則默認以time.time()作為參數(shù)。8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。strptime()函數(shù)strptime()函數(shù)用于將格式化的時間字符串轉化為struct_time,該函數(shù)是strftime()函數(shù)的反向操作。strptime()函數(shù)的語法格式如下:strptime(string,format)以上格式中的參數(shù)string表示格式化的時間字符串,format表示時間字符串的格式,string與format必須統(tǒng)一。8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。sleep()函數(shù)sleep()函數(shù)可讓調用該函數(shù)的程序進入睡眠態(tài),即讓其暫時掛起,等待一定時間后再繼續(xù)執(zhí)行。sleep()函數(shù)接收一個以秒為單位的浮點數(shù)作為參數(shù),使用該參數(shù)控制進程或線程掛起的時長。8.2.3time庫time庫time是最基礎的時間處理庫,該庫本質上是一個模塊,它包含的所有內容都定義在time.py文件中。該庫中定義了time()、strftime()、localtime()、sleep()和一些用于實現(xiàn)時間格式轉換的函數(shù)。時間計算時間計算通常指時間的加減,時間可以時間戳形式進行加減運算。若要對非時間戳形式表示的時間進行計算,在計算之前可以先將其轉換為時間戳形式。各形式之間的轉換方式如圖所示。8.4第三方庫8.4.1jieba庫中文分詞中文分詞是指將一個漢字序列切分成一個一個單獨的詞,也就是說將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程,其作用就是將用戶輸入的中文語句或語段拆成若干漢語詞匯。示例:我是一個學生我是一個學生中文分詞模塊——jiebapipinstalljieba/pip3installjieba安裝jieba導入jiebaimportjiebajieba模塊的分詞模式8.4.1jieba庫常用分詞函數(shù)函數(shù)功能說明jieba.cut(s)采用精準模式對文本s進行分詞,返回一個可迭代對象jieba.cut(s,cut_all=True)默認采用全模式對文本s進行分詞,輸出文本s中出現(xiàn)的所有詞。jieba.cut_for_search(s)采用搜索引擎模式對文本s進行分詞jieba.lcut(s)采用精準模式對文本s進行分詞,分詞結果以列表形式返回jieba.lcut(s,cut_all=True)采用全模式對文本s進行分詞,分詞結果以列表形式返回jieba.lcut_for_search(s)采用搜索引擎模式對文本s進行分詞,分詞結果以列表形式返回8.4.1jieba庫importjiebaseg_list=jieba.cut("我打算到中國科學研究院圖書館學習",cut_all=True)print("【全模式】:"+"/".join(seg_list))#全模式seg_list=jieba.lcut("我打算到中國科學研究院圖書館學習")print("【精確模式】:"+"/".join(seg_list))#精確模式#搜索引擎模式seg_list=jieba.cut_for_search("我打算到中國科學研究院圖書館學習")print("【搜索引擎模式】:"+",".join(seg_list))示例:分別采用三種模式對中文進行分詞操作8.4.1jieba庫增加新詞——add_word()jieba.add_word("好天氣")jieba.lcut("今天真是個好天氣")示例8.4.1jieba庫8.4.2PyInstaller庫PyInstaller是一個用來將Python程序打包成一個獨立可執(zhí)行軟件包,支持Windows、Linux和MacOS。PyInstaller可以讀取Python腳本,分析代碼并發(fā)現(xiàn)腳本執(zhí)行所需的所有其他模塊和庫,然后收集所有這些文件的副本,包括活動的Python解釋器,將其與腳本一起放在單個文件夾中,或者可選地在單個可執(zhí)行文件中。PyInstaller不是一個交叉編譯器,這使得如果需要制作Windows的應用程序,需要在Windows中運行PyInstaller。而要創(chuàng)建GNU/Linux應用程序,需要在GNU/Linux環(huán)境中運行PyInstaller。這個缺點使得打包好的Python應用程序變得無法跨平臺運行。PyInstaller是一個流行的工具,用于將Python程序打包成獨立的可執(zhí)行文件。以下是一個簡單的步驟,演示如何使用PyInstaller來打包一個Python腳本。8.4.2PyInstaller庫步驟1:安裝PyInstaller,首先,確保已經(jīng)安裝了PyInstaller。如果沒有安裝,可以通過pip來安裝:pipinstallpyinstaller步驟2:準備Python腳本,假設有一個簡單的Python腳本,例如hello.py,內容如下:print("Hello,World!")步驟3:使用PyInstaller打包腳本在命令行中,導航到包含Python腳本的目錄,并運行以下命令:pyinstaller--onefilehello.py這里的--onefile選項告訴PyInstaller將所有的內容打包到一個單獨的可執(zhí)行文件中。如果不使用這個選項,PyInstaller會創(chuàng)建一個包含許多文件的目錄。步驟4:檢查生成的文件PyInstaller會在dist目錄下生成一個可執(zhí)行文件(在Windows上通常是.exe文件,在Linux或macOS上則是沒有擴展名的文件)??梢赃\行這個文件來執(zhí)行Python腳本。8.4.2PyInstaller庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓租賃標準合同樣本
- 某銀行牡丹貸記卡動產(chǎn)質押合同范本
- Module 1 Unit 2 Changes in our lives Listen and say Listen and enjoy (教學設計)-2024-2025學年滬教牛津版(深圳用)英語六年級下冊
- 沿街商鋪購房合同范本
- 藝術家合作合同模板大全
- 企業(yè)融資成立合同:出資細節(jié)
- 房屋買賣合同真實案例解析
- 企業(yè)整體出售合同范本
- 10000以內數(shù)的讀寫(教學設計)-2023-2024學年二年級下冊數(shù)學人教版
- 11《爸爸媽媽在我心中 愛父母在行動》(教學設計)-部編版道德與法治三年級上冊
- 2025年四川司法警官職業(yè)學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 山東省德州市2024-2025學年高三上學期1月期末生物試題(有答案)
- 本人報廢車輛委托書
- 雙減政策與五項管理解讀
- 2025年道德與法治小學六年級下冊教學計劃(含進度表)
- 過橋資金操作流程
- 貨物學 課件1.2貨物的特性
- 新時代中國特色社會主義理論與實踐2024版研究生教材課件全集2章
- 2024年公路水運工程施工企業(yè)主要負責人和安全生產(chǎn)管理人員安全生產(chǎn)考核試題庫(含答案)
- 2025年軍隊文職考試《公共科目》試題與參考答案
- 輔導員入職培訓課件
評論
0/150
提交評論