《Python程序設(shè)計(jì)與人工智能項(xiàng)目教程》全套教學(xué)課件_第1頁(yè)
《Python程序設(shè)計(jì)與人工智能項(xiàng)目教程》全套教學(xué)課件_第2頁(yè)
《Python程序設(shè)計(jì)與人工智能項(xiàng)目教程》全套教學(xué)課件_第3頁(yè)
《Python程序設(shè)計(jì)與人工智能項(xiàng)目教程》全套教學(xué)課件_第4頁(yè)
《Python程序設(shè)計(jì)與人工智能項(xiàng)目教程》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩328頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python程序設(shè)計(jì)與人工智能項(xiàng)目教程第1章Python基礎(chǔ)知識(shí)第2章

數(shù)字類(lèi)型與運(yùn)算第3章

流程控制第4章

函數(shù)第5章

高級(jí)數(shù)據(jù)類(lèi)型及常見(jiàn)操作第6章

字符串

第7章

元組和列表第8章

集合與字典第9章

文件操作第10章

面向程序設(shè)計(jì)基礎(chǔ)第11章Matplotlib數(shù)據(jù)可視化第12章Python生態(tài)應(yīng)用全套可編輯PPT課件

本課件是可編輯的正常PPT課件第一章Python基礎(chǔ)05CONTENTS目錄順序結(jié)構(gòu)02流程控制基礎(chǔ)01分支結(jié)構(gòu)03循環(huán)結(jié)構(gòu)01040105流程跳轉(zhuǎn)語(yǔ)句異常處理異常處理項(xiàng)目實(shí)訓(xùn):學(xué)生畫(huà)像系統(tǒng)構(gòu)建0607本課件是可編輯的正常PPT課件實(shí)例1-1:以交互方式編寫(xiě)與運(yùn)行程序?qū)嵗?-2:以文件方式編寫(xiě)與運(yùn)行程序?qū)嵗?-3:使用PyCharm的基本流程實(shí)例1-4:使用JupyterNotebook的基本流程實(shí)例1-6:AI模型構(gòu)建項(xiàng)目的語(yǔ)法辨析實(shí)例1-7:輸出系統(tǒng)運(yùn)行狀態(tài)問(wèn)卷調(diào)查——收集用戶(hù)反饋實(shí)例1-8:將模型預(yù)測(cè)結(jié)果格式化為易于理解的報(bào)告項(xiàng)目實(shí)訓(xùn):個(gè)人名片設(shè)計(jì)應(yīng)用案例本章案例概覽01Python語(yǔ)言概述本課件是可編輯的正常PPT課件Python語(yǔ)法簡(jiǎn)潔明了,代碼可讀性強(qiáng),易于理解和學(xué)習(xí),適合初學(xué)者快速上手。例如,與其他語(yǔ)言相比,Python用縮進(jìn)代替大括號(hào),使代碼結(jié)構(gòu)清晰,減少了語(yǔ)法錯(cuò)誤。語(yǔ)法簡(jiǎn)潔易讀Python擁有豐富的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù),如Pandas用于數(shù)據(jù)分析,TensorFlow用于AI開(kāi)發(fā)。這些庫(kù)提供了強(qiáng)大的功能,開(kāi)發(fā)者無(wú)需從頭編寫(xiě)大量代碼,提高了開(kāi)發(fā)效率。豐富的庫(kù)資源Python具有良好的跨平臺(tái)性,可在Windows、Linux、Mac等多種操作系統(tǒng)上運(yùn)行。同時(shí),Python社區(qū)活躍,開(kāi)發(fā)者可以輕松找到大量學(xué)習(xí)資源和解決方案??缙脚_(tái)與社區(qū)支持Python的特點(diǎn)本課件是可編輯的正常PPT課件數(shù)據(jù)科學(xué)在數(shù)據(jù)科學(xué)領(lǐng)域,Python的Pandas庫(kù)用于數(shù)據(jù)處理和分析,NumPy庫(kù)用于數(shù)值計(jì)算。Matplotlib庫(kù)則用于數(shù)據(jù)可視化,幫助研究人員和分析師直觀地展示數(shù)據(jù)結(jié)果。Django和Flask是Python的兩大Web開(kāi)發(fā)框架,Django適合大型項(xiàng)目,提供了豐富的功能和安全性。Flask則更加靈活,適合小型項(xiàng)目和微服務(wù)架構(gòu),開(kāi)發(fā)者可以根據(jù)需求快速搭建Web應(yīng)用。Web開(kāi)發(fā)TensorFlow和PyTorch是Python在人工智能領(lǐng)域的兩大主流框架,廣泛應(yīng)用于深度學(xué)習(xí)模型的構(gòu)建和訓(xùn)練。這些框架提供了豐富的API和工具,支持開(kāi)發(fā)者進(jìn)行復(fù)雜的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和優(yōu)化。人工智能應(yīng)用領(lǐng)域本課件是可編輯的正常PPT課件Python的開(kāi)源特性促進(jìn)了全球開(kāi)發(fā)者社區(qū)的協(xié)作,加速了技術(shù)的創(chuàng)新和發(fā)展。開(kāi)源項(xiàng)目和代碼共享平臺(tái)如GitHub,為開(kāi)發(fā)者提供了學(xué)習(xí)和交流的機(jī)會(huì)。開(kāi)源共享推動(dòng)創(chuàng)新Python在多個(gè)領(lǐng)域的廣泛應(yīng)用,推動(dòng)了不同學(xué)科和技術(shù)的融合,如數(shù)據(jù)科學(xué)與人工智能的結(jié)合。這種跨領(lǐng)域融合為解決復(fù)雜問(wèn)題提供了新的思路和方法??珙I(lǐng)域融合趨勢(shì)Python語(yǔ)言和相關(guān)技術(shù)不斷發(fā)展,開(kāi)發(fā)者需要持續(xù)學(xué)習(xí)新知識(shí),跟上技術(shù)發(fā)展的步伐。參加培訓(xùn)課程、閱讀技術(shù)書(shū)籍和博客、參與開(kāi)源項(xiàng)目等都是有效的學(xué)習(xí)方式。持續(xù)學(xué)習(xí)的重要性發(fā)展啟示本課件是可編輯的正常PPT課件02開(kāi)發(fā)環(huán)境配置本課件是可編輯的正常PPT課件官網(wǎng)下載與安裝訪問(wèn)Python官網(wǎng),下載適合自己操作系統(tǒng)的安裝包,安裝過(guò)程中勾選“AddtoPATH”選項(xiàng)。這樣可以將Python添加到系統(tǒng)環(huán)境變量,方便在命令行中直接調(diào)用。驗(yàn)證安裝安裝完成后,打開(kāi)命令行工具,輸入python命令,若能進(jìn)入Python交互模式,則表示安裝成功。在交互模式中可以輸入Python代碼進(jìn)行測(cè)試,如print("Hello,World!")。版本管理工具使用版本管理工具如pyenv或conda,可以方便地管理不同版本的Python環(huán)境。這對(duì)于開(kāi)發(fā)和維護(hù)多個(gè)項(xiàng)目,特別是需要不同Python版本的項(xiàng)目非常有幫助。Python解釋器安裝本課件是可編輯的正常PPT課件PyCharmPyCharm是一款專(zhuān)業(yè)的Python集成開(kāi)發(fā)環(huán)境,支持代碼補(bǔ)全、調(diào)試、版本控制等功能。它提供了豐富的插件,可以擴(kuò)展功能,如支持Django、Flask等框架的開(kāi)發(fā)。JupyterNotebookJupyterNotebook是一個(gè)交互式的編程環(huán)境,適合數(shù)據(jù)分析和教學(xué)。它支持Markdown和代碼的混合編寫(xiě),可以方便地展示分析過(guò)程和結(jié)果。VSCodeVSCode是一款輕量級(jí)的代碼編輯器,通過(guò)安裝Python插件,可以支持Python開(kāi)發(fā)。它具有良好的性能和豐富的擴(kuò)展功能,適合多種編程語(yǔ)言的開(kāi)發(fā)。IDE工具本課件是可編輯的正常PPT課件03基礎(chǔ)語(yǔ)法本課件是可編輯的正常PPT課件03.01.02.命名規(guī)則Python標(biāo)識(shí)符的命名規(guī)則是:必須以字母或下劃線開(kāi)頭,不能以數(shù)字開(kāi)頭,區(qū)分大小寫(xiě)。例如,variable_name是合法的,而1variable是非法的。常見(jiàn)關(guān)鍵字Python中有一些保留的關(guān)鍵字,如if、for、while等,這些關(guān)鍵字不能用作變量名。了解和正確使用關(guān)鍵字是編寫(xiě)正確Python代碼的基礎(chǔ)。命名規(guī)范變量名通常采用蛇形命名法,如student_name;類(lèi)名采用駝峰命名法,如StudentInfo。良好的命名規(guī)范可以使代碼更加易讀,方便團(tuán)隊(duì)協(xié)作。標(biāo)識(shí)符與關(guān)鍵字本課件是可編輯的正常PPT課件縮進(jìn)的作用Python使用縮進(jìn)來(lái)定義代碼塊,如if語(yǔ)句、for循環(huán)等??s進(jìn)是強(qiáng)制性的,必須使用4個(gè)空格,不能使用制表符或空格混合縮進(jìn)。代碼塊的定義例如,在if語(yǔ)句中,條件判斷后的代碼塊需要縮進(jìn),表示這部分代碼屬于if語(yǔ)句的執(zhí)行體??s進(jìn)的正確使用可以使代碼結(jié)構(gòu)清晰,避免邏輯錯(cuò)誤。縮進(jìn)的注意事項(xiàng)在編寫(xiě)代碼時(shí),要注意保持一致的縮進(jìn)風(fēng)格,避免因縮進(jìn)問(wèn)題導(dǎo)致代碼無(wú)法正常運(yùn)行。如果使用IDE工具,通常會(huì)自動(dòng)處理縮進(jìn),但開(kāi)發(fā)者也需要了解縮進(jìn)規(guī)則??s進(jìn)與代碼結(jié)構(gòu)本課件是可編輯的正常PPT課件01Python支持單行注釋和多行注釋?zhuān)瑔涡凶⑨屢?開(kāi)頭,多行注釋使用三引號(hào)"""或'''。注釋可以用來(lái)解釋代碼的功能和邏輯,方便其他開(kāi)發(fā)者閱讀和理解。注釋的類(lèi)型02Python社區(qū)制定了PEP8編碼規(guī)范,建議開(kāi)發(fā)者遵循,如行長(zhǎng)度不超過(guò)79個(gè)字符,合理使用空行分隔邏輯塊。循編碼規(guī)范可以使代碼更加整潔、易讀,提高代碼質(zhì)量。編碼規(guī)范03使用代碼格式化工具如autopep8或black,可以自動(dòng)將代碼格式化為符合PEP8規(guī)范的樣式。這有助于保持代碼的一致性和可讀性,減少因格式問(wèn)題引起的人為錯(cuò)誤。格式化工具注釋與編碼規(guī)范本課件是可編輯的正常PPT課件04人機(jī)交互本課件是可編輯的正常PPT課件input()函數(shù)input()函數(shù)用于獲取用戶(hù)輸入,返回的是字符串類(lèi)型,需要根據(jù)需要進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換。例如,age=int(input("Enteryourage:"))獲取用戶(hù)輸入的年齡并轉(zhuǎn)換為整數(shù)。print()函數(shù)print()函數(shù)用于輸出內(nèi)容到控制臺(tái),支持多參數(shù)、分隔符sep和結(jié)尾符end。例如,print("Hello","World",sep="-",end="!")輸出Hello-World!。輸入輸出的注意事項(xiàng)要注意用戶(hù)輸入的合法性,如輸入是否符合預(yù)期的數(shù)據(jù)類(lèi)型和格式。對(duì)于非法輸入,應(yīng)該進(jìn)行適當(dāng)?shù)腻e(cuò)誤處理和提示。輸入輸出函數(shù)本課件是可編輯的正常PPT課件%操作符使用%操作符進(jìn)行格式化輸出,如"Name:%s,Age:%d"。這種方式簡(jiǎn)單直觀,但不夠靈活,不支持復(fù)雜的格式化操作。format()方法format()方法提供了更靈活的格式化方式,如"Name:{},Age:{}".format(name,age)。它支持位置參數(shù)和關(guān)鍵字參數(shù),可以根據(jù)需要調(diào)整格式化的內(nèi)容和順序。f-stringf-string是Python3.6引入的一種新的格式化方式,使用f"Name:{name},Age:{age}"。它簡(jiǎn)潔高效,可以直接在字符串中嵌入變量和表達(dá)式,是推薦的格式化方式。格式化輸出本課件是可編輯的正常PPT課件05項(xiàng)目實(shí)訓(xùn)——個(gè)人名片生成本課件是可編輯的正常PPT課件通過(guò)input()函數(shù)獲取用戶(hù)的姓名、職位、聯(lián)系方式等信息。例如,name=input("Enteryourname:")獲取用戶(hù)姓名。輸入模塊根據(jù)用戶(hù)選擇的名片風(fēng)格(簡(jiǎn)約、現(xiàn)代等),使用字符串格式化生成名片內(nèi)容。例如,使用f-string生成簡(jiǎn)約風(fēng)格的名片:f"Name:{name}\nPosition:{position}"。生成模塊將生成的名片內(nèi)容寫(xiě)入文件business_card.txt,使用文件操作函數(shù)完成保存。例如,withopen("business_card.txt","w")asfile:將名片內(nèi)容寫(xiě)入文件。保存模塊項(xiàng)目流程本課件是可編輯的正常PPT課件增加GUI界面支持批量生成添加預(yù)覽功能使用Tkinter庫(kù)為名片生成程序添加圖形用戶(hù)界面,方便用戶(hù)操作。例如,創(chuàng)建一個(gè)窗口,包含輸入框和按鈕,用戶(hù)點(diǎn)擊按鈕生成名片。修改程序邏輯,支持用戶(hù)批量輸入名片信息,一次性生成多個(gè)名片。例如,從文件中讀取多組名片信息,然后批量生成并保存。在生成名片之前,為用戶(hù)提供預(yù)覽功能,讓用戶(hù)確認(rèn)名片內(nèi)容無(wú)誤后再保存。例如,在GUI界面中顯示預(yù)覽區(qū)域,用戶(hù)可以查看生成的名片效果。優(yōu)化方向本課件是可編輯的正常PPT課件通過(guò)本項(xiàng)目,學(xué)習(xí)了Python的輸入輸出、文件操作、字符串格式化等基礎(chǔ)語(yǔ)法。理解了程序的基本結(jié)構(gòu)和流程,掌握了如何將所學(xué)知識(shí)應(yīng)用到實(shí)際項(xiàng)目中。項(xiàng)目收獲項(xiàng)目改進(jìn)項(xiàng)目拓展本項(xiàng)目可以作為基礎(chǔ),拓展到其他類(lèi)似的文本生成項(xiàng)目,如簡(jiǎn)歷生成、報(bào)告生成等。通過(guò)不斷實(shí)踐和改進(jìn),提高編程能力和項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn)。在項(xiàng)目開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn)了一些可以改進(jìn)的地方,如增加錯(cuò)誤處理機(jī)制,提高程序的健壯性。未來(lái)可以進(jìn)一步優(yōu)化程序功能,增加更多實(shí)用的功能和特性。項(xiàng)目總結(jié)本課件是可編輯的正常PPT課件謝謝大家本課件是可編輯的正常PPT課件第二章數(shù)字類(lèi)型與運(yùn)算本課件是可編輯的正常PPT課件CONTENTS目錄運(yùn)算符與表達(dá)式0201數(shù)字類(lèi)型01數(shù)學(xué)運(yùn)算函數(shù)03math模塊及其應(yīng)用010401050501項(xiàng)目實(shí)訓(xùn):競(jìng)賽積分?jǐn)?shù)據(jù)分析及預(yù)測(cè)本課件是可編輯的正常PPT課件實(shí)例2-1:計(jì)算產(chǎn)品優(yōu)惠價(jià)實(shí)例2-2:字母變現(xiàn)實(shí)例2-3:計(jì)算線性插值實(shí)例2-4:計(jì)算貸款額度實(shí)例2-5:計(jì)算存款本息和實(shí)例2-6:分析股票價(jià)格實(shí)例2-7:計(jì)算圓的周長(zhǎng)實(shí)例2-8:計(jì)算炮彈發(fā)射位移實(shí)例2-9:使用三角函數(shù)進(jìn)行圖像的感知與識(shí)別的預(yù)處理項(xiàng)目實(shí)訓(xùn):競(jìng)賽積分?jǐn)?shù)據(jù)分析及預(yù)測(cè)——?jiǎng)?chuàng)新?tīng)?zhēng)先應(yīng)用案例本章案例概覽本課件是可編輯的正常PPT課件01數(shù)字類(lèi)型常見(jiàn)數(shù)字類(lèi)型復(fù)類(lèi)型復(fù)數(shù)類(lèi)型(complex)用于表示復(fù)數(shù),即包含實(shí)部和虛部的數(shù)字,如1+2j、-3-4j等。復(fù)數(shù)類(lèi)型支持完整的復(fù)數(shù)運(yùn)算,包括加法、減法、乘法和除法等操作,在信號(hào)處理、量子力學(xué)、電氣工程等需要復(fù)雜數(shù)學(xué)建模的場(chǎng)景中具有重要的應(yīng)用價(jià)值。整數(shù)類(lèi)型整數(shù)類(lèi)型(int)用于表示正整數(shù)、負(fù)整數(shù)和0,如10、-10、0等。Python的整數(shù)類(lèi)型不受大小限制,僅受計(jì)算機(jī)內(nèi)存大小的約束,其精確性和高效性非常適合用于計(jì)數(shù)、索引及需要精確數(shù)值計(jì)算的場(chǎng)景。浮點(diǎn)數(shù)類(lèi)型浮點(diǎn)數(shù)類(lèi)型(float)用于表示帶小數(shù)部分的數(shù)字,如9.8、3.14159等。Python使用雙精度浮點(diǎn)數(shù)表示法,能夠表示非常大或非常小的數(shù)值,但因采用二進(jìn)制浮點(diǎn)數(shù)表示法,精度有限,可能會(huì)出現(xiàn)微小的精度誤差,如0.1+0.2的結(jié)果為0.30000000000000004。使用type()函數(shù)type()函數(shù)用于返回對(duì)象的類(lèi)型。通過(guò)將變量當(dāng)作參數(shù)傳遞給type()函數(shù),可以獲取該變量的類(lèi)型。在實(shí)際的Python編程中,數(shù)字類(lèi)型的判斷常用于數(shù)據(jù)驗(yàn)證、類(lèi)型轉(zhuǎn)換和條件判斷等場(chǎng)景。。判斷的應(yīng)用場(chǎng)景isinstance()函數(shù)用于檢查對(duì)象是否屬于指定類(lèi)型。與type()函數(shù)相比,isinstance()函數(shù)更靈活,支持檢查對(duì)象是否屬于多個(gè)類(lèi)型之一。數(shù)字類(lèi)型判斷使用isinstance()函數(shù)將浮點(diǎn)數(shù)或整數(shù)類(lèi)型的字符串轉(zhuǎn)換為一個(gè)整數(shù)。int函數(shù)將整數(shù)或浮點(diǎn)數(shù)類(lèi)型的字符串轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)。float函數(shù)將復(fù)數(shù)類(lèi)型的字符串轉(zhuǎn)換為一個(gè)復(fù)數(shù)。。complex函數(shù)數(shù)字類(lèi)型轉(zhuǎn)換02運(yùn)算符與表達(dá)式常用的運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符01符號(hào)名稱(chēng)算術(shù)運(yùn)算符實(shí)

例解釋?zhuān)僭O(shè)變量a=10,b=3)加+a+b兩個(gè)數(shù)字相加,結(jié)果為13減-a-b兩個(gè)數(shù)字相減,結(jié)果為7乘*a*b兩個(gè)數(shù)字相乘,結(jié)果為30除/a/b兩個(gè)數(shù)字相除,結(jié)果為3.33(保留兩位小數(shù))整除//a//b兩個(gè)數(shù)字整除,結(jié)果為3取模%a%b模運(yùn)算,結(jié)果為1取正/取負(fù)+/-+a、-b符號(hào)運(yùn)算,結(jié)果為10和-3冪**a**b冪運(yùn)算,結(jié)果為100002比較運(yùn)算符符號(hào)名稱(chēng)比較運(yùn)算符實(shí)

例解釋?zhuān)僭O(shè)變量a=8,b=5)等于==a==ba和b是否相等,結(jié)果為False不等于!=a!=ba和b是否不相等,結(jié)果為T(mén)rue大于>

a>ba是否大于b,結(jié)果為T(mén)rue小于<

a<ba是否小于b,結(jié)果為False大于等于>=a>=ba是否大于或等于b,結(jié)果為T(mén)rue小于等于<=a<=ba是否小于或等于b,結(jié)果為False常用的運(yùn)算符與表達(dá)式位運(yùn)算符03邏輯運(yùn)算符04符號(hào)名稱(chēng)比較運(yùn)算符實(shí)

例解釋?zhuān)僭O(shè)變量a=0b1010,b=0b1100)按位與&a&ba和b進(jìn)行與操作,結(jié)果為0b1000按位或|a|ba和b進(jìn)行或操作,結(jié)果為0b1110按位異或^a^ba和b進(jìn)行異或操作,結(jié)果為0b0110按位取反~a~ba取反,結(jié)果為-0b1011左移<<

a<<ba左移2位,結(jié)果為0b101000右移>>

a>>bb右移1位,結(jié)果為0b0110符號(hào)名稱(chēng)邏輯運(yùn)算符實(shí)

例解釋?zhuān)僭O(shè)變量a=True,b=False)邏輯與andaandb只有當(dāng)a和b都為T(mén)rue時(shí),結(jié)果才是True,否則結(jié)果為False。此實(shí)例的結(jié)果為False。邏輯或oraorb只要a或b中有一個(gè)為T(mén)rue,結(jié)果就是True,否則結(jié)果為False。此實(shí)例的結(jié)果為T(mén)rue邏輯非notnota若a為T(mén)rue,則結(jié)果為False;若a為False,則結(jié)果為T(mén)rue。此實(shí)例的結(jié)果為False常用的運(yùn)算符與表達(dá)式value_if_trueifconditionelsevalue_if_false(1)condition:一個(gè)條件表達(dá)式,值為T(mén)rue或False。(2)value_if_true:若condition的值為T(mén)rue,則返回該值。(3)value_if_false:若condition的值為False,則返回該值。條件運(yùn)算符0506(1)is:若兩個(gè)變量指向同一個(gè)對(duì)象內(nèi)存地址相同),則結(jié)果為T(mén)rue,否則結(jié)果為False。(2)isnot:若兩個(gè)變量指向不同的對(duì)象(內(nèi)存地址不同),則結(jié)果為T(mén)rue,否則結(jié)果為False。身份運(yùn)算符07符號(hào)名稱(chēng)賦值運(yùn)算符實(shí)

例等

價(jià)

于解釋?zhuān)僭O(shè)變量x=5)加等于+=x+=2x=x+2加后賦值,最后x等于7減等于-=x-=2x=x-2減后賦值,最后x等于3乘等于*=x*=2x=x*2乘后賦值,最后x等于10除等于/=x/=2x=x/2除后賦值,最后x等于2.5整除等于//=x//=2x=x//2整除賦值,最后x等于2按位與等于&=x&=2x=x&2按位與后賦值,最后x等于0按位異或等于^=x^=2x=x^2按位異或后賦值,最后x等于7按位或等于|=x|=2x=x|2按位或后賦值,最后x等于7左移等于<<=x<<=2x=x<<2左移后賦值,最后x等于20右移等于>>=x>>=2x=x>>2右移后賦值,最后x等于1運(yùn)算符的優(yōu)先級(jí)優(yōu)

級(jí)運(yùn)

符說(shuō)

明高

低1()圓括號(hào)(用于分組)2**數(shù)字的冪運(yùn)算3+x、-x、~x數(shù)字的正號(hào)、負(fù)號(hào)、按位取反4*、/、//、%數(shù)字的乘、除、整除、取模5+、-數(shù)字的加、減6<<、>>整數(shù)的左移、右移7&整數(shù)的按位與8^整數(shù)的按位異或9|整數(shù)的按位或10==、!=、>、<、>=、<=數(shù)字的比較運(yùn)算符11is、isnot對(duì)象身份運(yùn)算符12not邏輯非13and邏輯與14or邏輯或15=、+=、-=等賦值運(yùn)算符03數(shù)學(xué)運(yùn)算函數(shù)數(shù)學(xué)運(yùn)算函數(shù)01絕對(duì)值函數(shù)abs()函數(shù)用于計(jì)算數(shù)字的絕對(duì)值,可以處理整數(shù)、浮點(diǎn)數(shù)或復(fù)數(shù)。例如,print(abs(-10))的結(jié)果為10,print(abs(-3.14))的結(jié)果為3.14。04最大值和最小值函數(shù)max()函數(shù)和min()函數(shù)分別用于找出一組數(shù)據(jù)中的最大值和最小值,可以處理多種數(shù)據(jù)類(lèi)型,包括數(shù)字、字符串、列表、元組等。例如,print(max(3,1,4,9))的結(jié)果為9,print(min(3,1,4,1,9))的結(jié)果為1。02四舍五入函數(shù)round()函數(shù)用于對(duì)數(shù)字進(jìn)行四舍五入,可以指定保留的小數(shù)位數(shù)。例如,result=round(3.1419,2)的結(jié)果為3.14。05字符串和表達(dá)式轉(zhuǎn)換函數(shù)eval()函數(shù)用于將字符串作為Python表達(dá)式來(lái)執(zhí)行,并返回表達(dá)式的結(jié)果。exec()函數(shù)用于執(zhí)行動(dòng)態(tài)生成的Python代碼。這兩個(gè)函數(shù)在處理動(dòng)態(tài)生成的數(shù)據(jù)或用戶(hù)的輸入數(shù)據(jù)時(shí)非常有用,但需要注意安全性,避免執(zhí)行惡意代碼。03冪和模冪函數(shù)pow()函數(shù)用于計(jì)算數(shù)字的冪或模冪,比運(yùn)算符的功能更強(qiáng)大。例如,print(pow(2,3))的結(jié)果為8,print(pow(2,3))的結(jié)果為3。pow()函數(shù)在處理大數(shù)冪運(yùn)算和模冪運(yùn)算時(shí)具有較高的效率和準(zhǔn)確性,適用于密碼學(xué)、數(shù)論等領(lǐng)域。04math模塊及其應(yīng)用01import語(yǔ)句用于導(dǎo)入整個(gè)模塊。在導(dǎo)入后,可以通過(guò)模塊名訪問(wèn)其中的函數(shù)、類(lèi)或變量。importmathresult=math.sqrt(16)print(f"平方根:{result}")使用import語(yǔ)句02from...import語(yǔ)句用于導(dǎo)入特定函數(shù)、類(lèi)或變量。在導(dǎo)入后,可以直接使用這些內(nèi)容,而無(wú)須通過(guò)模塊名前綴訪問(wèn)。frommathimportsqrtresult=sqrt(25)print(f"平方根:{result}")編碼規(guī)范math模塊導(dǎo)入的兩種方法數(shù)字運(yùn)算函數(shù)math.sqrt(x):計(jì)算數(shù)字x的平方根。math.pow(x,y):計(jì)算數(shù)字x的y次冪。math.exp(x):計(jì)算自然常數(shù)e的數(shù)字x次冪。math.log(x,base):計(jì)算以數(shù)字base為底的x的對(duì)數(shù)(默認(rèn)以e為底)。math.fabs(x):計(jì)算數(shù)字x的絕對(duì)值。三角函數(shù)math.sin(x):計(jì)算x弧度的正弦值。math.cos(x):計(jì)算x弧度的余弦值。math.tan(x):計(jì)算x弧度的正切值。math.degrees(x):將弧度轉(zhuǎn)換為角度。math.radians(x):將角度轉(zhuǎn)換為弧度。數(shù)論函數(shù)math.gcd(a,b):計(jì)算a和b的最大公約數(shù)。math.factorial(x):計(jì)算x的階乘。math模塊的主要功能及應(yīng)用F數(shù)量常量math.pi:圓周率π,約為3.141926389793。math.e:自然常數(shù)e,約為2.7182818284904。。05項(xiàng)目實(shí)訓(xùn)——競(jìng)賽積分?jǐn)?shù)據(jù)分析及預(yù)測(cè)在各類(lèi)競(jìng)賽中,參賽者的積分?jǐn)?shù)據(jù)是評(píng)估其表現(xiàn)的重要指標(biāo)。通過(guò)對(duì)歷史積分?jǐn)?shù)據(jù)進(jìn)行分析,可以了解參賽者的表現(xiàn)情況,如平均積分、最高積分、最低積分等,從而為參賽者提供有針對(duì)性的建議和改進(jìn)方向。此外,預(yù)測(cè)未來(lái)的積分變化趨勢(shì)可以幫助參賽者制定有效的競(jìng)賽策略,提前做好準(zhǔn)備,提高在競(jìng)賽中的競(jìng)爭(zhēng)力。競(jìng)賽積分的重要性數(shù)據(jù)分析與預(yù)測(cè)不僅在競(jìng)賽積分場(chǎng)景中具有重要意義,還可以廣泛應(yīng)用于金融、醫(yī)療、教育等多個(gè)領(lǐng)域。例如,在金融市場(chǎng)中,通過(guò)對(duì)股票價(jià)格、交易量等數(shù)據(jù)的分析和預(yù)測(cè),投資者可以做出更明智的投資決策;;在教育領(lǐng)域,通過(guò)對(duì)學(xué)生的考試成績(jī)、學(xué)習(xí)行為等數(shù)據(jù)進(jìn)行分析和預(yù)測(cè),教師可以及時(shí)調(diào)整教學(xué)方法,提高教學(xué)效果。因此,掌握數(shù)據(jù)分析與預(yù)測(cè)的方法和技巧對(duì)于解決實(shí)際問(wèn)題具有重要的價(jià)值。數(shù)據(jù)分析與預(yù)測(cè)的應(yīng)用Python是一種廣泛使用的編程語(yǔ)言,具有簡(jiǎn)潔易讀的語(yǔ)法和豐富的庫(kù)資源,非常適合進(jìn)行數(shù)據(jù)分析與預(yù)測(cè)。例如,Pandas庫(kù)提供了強(qiáng)大的數(shù)據(jù)處理和分析工具,Matplotlib庫(kù)和Seaborn庫(kù)等用于數(shù)據(jù)可視化,Scikit-learn庫(kù)提供了豐富的機(jī)器學(xué)習(xí)算法和模型,等等。這些庫(kù)使得Python在數(shù)據(jù)分析與預(yù)測(cè)領(lǐng)域具有強(qiáng)大的競(jìng)爭(zhēng)力,能夠快速、準(zhǔn)確地處理和分析各種數(shù)據(jù),為實(shí)際應(yīng)用提供了有力的支持。Python在數(shù)據(jù)分析與預(yù)測(cè)中的優(yōu)勢(shì)項(xiàng)目背景通過(guò)數(shù)據(jù)輸入獲取參賽者的歷史積分?jǐn)?shù)據(jù),為后續(xù)分析提供基礎(chǔ)。數(shù)據(jù)輸入數(shù)據(jù)分析使用Python內(nèi)置函數(shù)對(duì)參賽者的歷史積分?jǐn)?shù)據(jù)進(jìn)行分析,計(jì)算平均積分、最高積分、最低積分等統(tǒng)計(jì)指標(biāo)。通過(guò)這些統(tǒng)計(jì)指標(biāo)可以全面評(píng)估參賽者的表現(xiàn),了解其在不同比賽中的穩(wěn)定性和波動(dòng)情況。將分析結(jié)果和預(yù)測(cè)結(jié)果清晰地展示出來(lái),為參賽者提供有價(jià)值的參考信息。這些結(jié)果可以幫助參賽者直觀地了解自己的表現(xiàn)和未來(lái)的發(fā)展趨勢(shì),從而更好地制定競(jìng)賽策略。利用性回歸模型對(duì)參賽者的積分變化趨勢(shì)進(jìn)行預(yù)測(cè)。線性回歸模型的公式為y=mx+b,其中y是預(yù)測(cè)的積分,x是時(shí)間(如第幾場(chǎng)比賽),m是斜率,b是截距。使用NumPy中的polyfit()函數(shù)可以擬合線性回歸模型。趨勢(shì)預(yù)測(cè)結(jié)果輸出01030402項(xiàng)目任務(wù)使用Matplotlib繪制積分變化趨勢(shì)圖,直觀地展示數(shù)據(jù)分析結(jié)果和預(yù)測(cè)結(jié)果。例如,通過(guò)繪制折線圖,可以清晰地看到參賽者積分的上升或下降趨勢(shì),以及預(yù)測(cè)的積分變化情況。數(shù)據(jù)可視化可以提高結(jié)果的可讀性和解釋性,使參賽者更容易理解和接受分析結(jié)果,從而更好地指導(dǎo)實(shí)踐。引入數(shù)據(jù)可視化功能?chē)L試使用多項(xiàng)式回歸模型等其他回歸模型進(jìn)行預(yù)測(cè),并通過(guò)對(duì)比不同模型的預(yù)測(cè)結(jié)果,選擇最優(yōu)預(yù)測(cè)方法。例如,除了線性回歸模型外,還可以嘗試二次回歸模型、三次回歸模型等,比較它們?cè)陬A(yù)測(cè)精度、擬合優(yōu)度等方面的差異,從而選擇最適合參賽者積分?jǐn)?shù)據(jù)的預(yù)測(cè)模型。多模型比較可以提高預(yù)測(cè)的準(zhǔn)確性和可靠性,為參賽者提供更可靠的參考依據(jù)。進(jìn)行多模型比較增加更多的歷史數(shù)據(jù)樣本,豐富數(shù)據(jù)集,從而提高預(yù)測(cè)的準(zhǔn)確性和可靠性。例如,除了現(xiàn)有的10場(chǎng)比賽的積分?jǐn)?shù)據(jù)外,還可以收集更多的比賽數(shù)據(jù),如20場(chǎng)、30場(chǎng)等,使數(shù)據(jù)集更加全面和豐富。更多的數(shù)據(jù)樣本可以更好地反映參賽者的長(zhǎng)期表現(xiàn)和趨勢(shì),從而提高預(yù)測(cè)模型的性能和預(yù)測(cè)結(jié)果的可信度。通過(guò)數(shù)據(jù)擴(kuò)展項(xiàng)目?jī)?yōu)化01.02.03.項(xiàng)目收獲本項(xiàng)目實(shí)訓(xùn)展示了如何使用Python對(duì)競(jìng)賽積分?jǐn)?shù)據(jù)進(jìn)行高效分析與預(yù)測(cè),以及如何使用sum()函數(shù)、len()函數(shù)、max()函數(shù)、min()函數(shù)等進(jìn)行數(shù)據(jù)分析,還學(xué)習(xí)了如何使用線性回歸模型進(jìn)行趨勢(shì)預(yù)測(cè)。通過(guò)本項(xiàng)目,不僅掌握了數(shù)據(jù)分析與預(yù)測(cè)的基本方法和技巧,還提高了編程能力和解決實(shí)際問(wèn)題的能力。項(xiàng)目改進(jìn)在項(xiàng)目開(kāi)發(fā)過(guò)程中,發(fā)現(xiàn)了一些可以改進(jìn)的地方,如在數(shù)據(jù)輸入階段可以增加數(shù)據(jù)驗(yàn)證機(jī)制,確保輸入的數(shù)據(jù)格式正確、完整;在數(shù)據(jù)分析階段可以進(jìn)一步細(xì)化統(tǒng)計(jì)指標(biāo),如計(jì)算積分的標(biāo)準(zhǔn)差、方差等,以更全面地評(píng)估參賽者的積分波動(dòng)情況;在趨勢(shì)預(yù)測(cè)階段可以嘗試更多的預(yù)測(cè)模型,并對(duì)模型進(jìn)行優(yōu)化和調(diào)整,以提高預(yù)測(cè)的準(zhǔn)確性。項(xiàng)目拓展本項(xiàng)目可以作為基礎(chǔ),拓展到其他類(lèi)似的場(chǎng)景,如學(xué)生學(xué)習(xí)成績(jī)分析與預(yù)測(cè)、員工績(jī)效分析與預(yù)測(cè)、運(yùn)動(dòng)員比賽成績(jī)分析與預(yù)測(cè)等。通過(guò)不斷實(shí)踐和改進(jìn),可以提高數(shù)據(jù)分析與預(yù)測(cè)的能力和水平,為各個(gè)領(lǐng)域的決策提供有力的支持??偨Y(jié)與啟示謝謝大家第三章流程控制05CONTENTS目錄順序結(jié)構(gòu)02流程控制基礎(chǔ)01分支結(jié)構(gòu)03循環(huán)結(jié)構(gòu)01040105流程跳轉(zhuǎn)語(yǔ)句異常處理異常處理項(xiàng)目實(shí)訓(xùn):學(xué)生畫(huà)像系統(tǒng)構(gòu)建0607實(shí)例3-1:使用簡(jiǎn)單的線性回歸模型預(yù)測(cè)房屋價(jià)格實(shí)例3-2:判斷數(shù)據(jù)是否正常實(shí)例3-3:判斷數(shù)據(jù)是否異常實(shí)例3-4:驗(yàn)證用戶(hù)登錄實(shí)例3-5:判斷優(yōu)惠票價(jià)實(shí)例3-6:預(yù)測(cè)身高實(shí)例3-7:根據(jù)特征值進(jìn)行分類(lèi)決策實(shí)例3-8:使用嵌套分支結(jié)構(gòu)進(jìn)行成績(jī)等級(jí)評(píng)定實(shí)例3-9:驗(yàn)證用戶(hù)登錄實(shí)例3-10:交互式菜單操作實(shí)例3-11:基于標(biāo)簽化的多類(lèi)型文本分類(lèi)實(shí)例3-12:使用match語(yǔ)句處理錯(cuò)誤提示實(shí)例3-13:募捐程序?qū)嵗?-14:限制用戶(hù)登錄失敗的機(jī)會(huì)實(shí)例3-15:實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)程序應(yīng)用案例本章案例概覽實(shí)例3-16:使用range()函數(shù)生成等差數(shù)列并輸出實(shí)例3-17:計(jì)算棋盤(pán)上的麥子重量實(shí)例3-18:計(jì)算炮彈飛行軌跡數(shù)據(jù)實(shí)例3-19:去除數(shù)據(jù)異常值實(shí)例3-20:九九乘法表實(shí)例3-21:設(shè)計(jì)產(chǎn)品打包銷(xiāo)售方案實(shí)例3-22:使用優(yōu)化策略提高嵌套循環(huán)效率實(shí)例3-23:序列輸出控制實(shí)例3-24:提前停止人工智能模型訓(xùn)練實(shí)例3-25:網(wǎng)絡(luò)請(qǐng)求重試機(jī)制實(shí)例3-26:模擬基于流程控制的智能客服對(duì)話流程實(shí)例3-27:數(shù)據(jù)輸入和計(jì)算中的異常處理實(shí)例3-28:智能客服對(duì)話流程中的異常處理實(shí)例3-29:網(wǎng)絡(luò)請(qǐng)求中的異常處理項(xiàng)目實(shí)訓(xùn):學(xué)生畫(huà)像系統(tǒng)構(gòu)建01Python流程控制的基本概念`順序結(jié)構(gòu)是程序中最基本的流程控制方式,代碼按書(shū)寫(xiě)順序依次執(zhí)行,每行代碼依次處理,直到程序結(jié)束或遇到跳轉(zhuǎn)語(yǔ)句。順序結(jié)構(gòu)分支結(jié)構(gòu)根據(jù)條件判斷選擇不同執(zhí)行路徑,實(shí)現(xiàn)程序的多樣化功能,如if語(yǔ)句和match語(yǔ)句。分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)用于重復(fù)執(zhí)行某段代碼,直到滿足特定條件為止,提高代碼復(fù)用性和效率。循環(huán)結(jié)構(gòu)流程控制概述02順序結(jié)構(gòu)順序結(jié)構(gòu)是基本且常見(jiàn)的流程控制結(jié)構(gòu)之一。在順序結(jié)構(gòu)中,程序按代碼的書(shū)寫(xiě)順序從上到下逐行執(zhí)行,每行代碼都會(huì)被依次執(zhí)行,直到程序結(jié)束或遇到跳轉(zhuǎn)語(yǔ)句為止。順序結(jié)構(gòu)順序結(jié)構(gòu)是程序設(shè)計(jì)的基石,用于確保代碼按既定的順序逐行執(zhí)行。然而,在Python中,若某條語(yǔ)句出現(xiàn)錯(cuò)誤,則后續(xù)語(yǔ)句的執(zhí)行將被阻斷。處理解釋型語(yǔ)言的程序錯(cuò)誤P順序結(jié)構(gòu)03分支結(jié)構(gòu)單分支結(jié)構(gòu)僅使用if語(yǔ)句判斷條件,當(dāng)條件為真時(shí)執(zhí)行相應(yīng)語(yǔ)句塊。單分支結(jié)構(gòu)雙分支結(jié)構(gòu)包含if和else子句,根據(jù)條件真假選擇執(zhí)行不同語(yǔ)句塊。雙分支結(jié)構(gòu)多分支結(jié)構(gòu)通過(guò)多個(gè)elif子句實(shí)現(xiàn),將條件分為多個(gè)區(qū)間,提高程序邏輯清晰度。多分支結(jié)構(gòu)嵌套分支結(jié)構(gòu)在一個(gè)分支結(jié)構(gòu)內(nèi)部嵌套另一個(gè)分支結(jié)構(gòu),形成復(fù)雜的決策樹(shù)。嵌套分支結(jié)構(gòu)if語(yǔ)句matchexpression:casepattern1:#

語(yǔ)句塊1casepattern2:#語(yǔ)句塊2casepattern3:#語(yǔ)句塊3case_:#通配符模式,匹配任何值

#默認(rèn)語(yǔ)句塊match語(yǔ)句match語(yǔ)句作為一種新的結(jié)構(gòu)化分支控制流工具被引入,旨在提供更清晰、簡(jiǎn)潔的替代方案,特別是在進(jìn)行多重條件判斷時(shí),match語(yǔ)句比傳統(tǒng)的if…elif…else語(yǔ)句更具可讀性。match語(yǔ)句基于模式匹配,可以匹配簡(jiǎn)單的值、數(shù)據(jù)類(lèi)型、枚舉類(lèi)型,甚至是復(fù)雜的結(jié)構(gòu),以下是match語(yǔ)句的語(yǔ)法。04循環(huán)結(jié)構(gòu)它通過(guò)持續(xù)檢測(cè)一個(gè)指定的條件表達(dá)式?jīng)Q定是否繼續(xù)執(zhí)行循環(huán)語(yǔ)句塊,因此也被稱(chēng)為條件循環(huán)結(jié)構(gòu)。該條件表達(dá)式會(huì)被隱式轉(zhuǎn)換為布爾值,即True或False。在Python中,0、空序列式被視為False,其他值被視為T(mén)rue。基本概念while條件表達(dá)式:#循環(huán)體:執(zhí)行的語(yǔ)句塊while循環(huán)結(jié)構(gòu)的語(yǔ)法while循環(huán)range(stop)#0,1,2,3,4,…,stop-1,初值為0,步長(zhǎng)為1的等差數(shù)列生成從0開(kāi)始,到stop(不包括)結(jié)束,步長(zhǎng)為1的等差數(shù)列。例如:range(5)生成序列[0,1,2,3,4]。01基本形式range(start,stop[,step])#start,start+step,start+2*step……等差數(shù)列生成從start開(kāi)始,到stop(不包括)結(jié)束,步長(zhǎng)為step的等差數(shù)列。range()函數(shù)生成的內(nèi)容:r[i]=start+step*i。step參數(shù)是可選的,默認(rèn)值為1。當(dāng)step參數(shù)的值為正整數(shù),要求i≥0且r[i]<stop,產(chǎn)生的序列遞增。當(dāng)step參數(shù)的值為負(fù)整數(shù),要求i≥0且r[i]>stop,產(chǎn)生的序列遞減。02數(shù)字序列生成與循環(huán)控制range()函數(shù)是Python內(nèi)置的數(shù)字序列生成器,是用于生成不可變數(shù)字序列(等差數(shù)列)的重要工具,返回的對(duì)象是一個(gè)可迭代的、表示連續(xù)整數(shù)范圍的對(duì)象。擴(kuò)展形式for循環(huán)適用于循環(huán)次數(shù)明確或可迭代對(duì)象確定的場(chǎng)景,用于簡(jiǎn)潔、高效地遍歷各類(lèi)可迭代數(shù)據(jù)結(jié)構(gòu)。它按順序迭代字符串、列表、集合、字典及文件對(duì)象等中的各元素,執(zhí)行預(yù)定操作,for循環(huán)結(jié)構(gòu)的語(yǔ)法如下。for循環(huán)變量in可迭代對(duì)象:

循環(huán)體語(yǔ)句塊#縮進(jìn)部分,對(duì)各元素執(zhí)行的具體操作for循環(huán)010302二重循環(huán)二重循環(huán)在一個(gè)循環(huán)體中嵌套另一個(gè)循環(huán),用于處理二維數(shù)據(jù)結(jié)構(gòu),如矩陣。三重循環(huán)三重循環(huán)用于處理更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如三維數(shù)組,提高程序靈活性。效率優(yōu)化嵌套循環(huán)可能導(dǎo)致性能問(wèn)題,需優(yōu)化算法,減少不必要的嵌套或使用高效數(shù)據(jù)結(jié)構(gòu)。嵌套循環(huán)05流程跳轉(zhuǎn)語(yǔ)句pass語(yǔ)句在Python中是一個(gè)空操作,什么也不做,用于保持程序結(jié)構(gòu)的完整性。當(dāng)語(yǔ)法上需要一個(gè)語(yǔ)句,但邏輯上暫時(shí)不需要執(zhí)行任何操作時(shí),可以使用pass語(yǔ)句。空操作pass語(yǔ)句占位pass語(yǔ)句在開(kāi)發(fā)過(guò)程中,常被用作為類(lèi)、函數(shù)、條件體的占位符,或創(chuàng)建占位程序、保證格式完整、保證語(yǔ)義完整等,以便在后續(xù)開(kāi)發(fā)中填充實(shí)際代碼。continue語(yǔ)句用于跳過(guò)循環(huán)中的當(dāng)前迭代,并繼續(xù)執(zhí)行下一次迭代。它通常與條件語(yǔ)句結(jié)合使用,以用于跳過(guò)不滿足特定條件的迭代。continue語(yǔ)句break語(yǔ)句用于立即終止循環(huán),并跳出循環(huán)體。它同樣通常與條件語(yǔ)句結(jié)合使用,以在滿足特定條件時(shí)提前結(jié)束循環(huán)。break語(yǔ)句在Python中,else子句不僅可以與if語(yǔ)句結(jié)合使用,還可以與循環(huán)結(jié)構(gòu)(for循環(huán)結(jié)構(gòu)和while循環(huán)結(jié)構(gòu))結(jié)合使用。當(dāng)循環(huán)正常結(jié)束時(shí)(即沒(méi)有通過(guò)break語(yǔ)句提前終止,else子句將被執(zhí)行。else子句06異常處理異常是程序運(yùn)行時(shí)遇到的錯(cuò)誤情況,可能由多種原因引起,如語(yǔ)法錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤等。異常定義01常見(jiàn)異常類(lèi)型異常概述與類(lèi)型異

常說(shuō)

明異

常說(shuō)

明Exception常規(guī)異常的父類(lèi),可以捕獲任意異常ModuleNotFoundError模塊不存在NameError未聲明/未初始化的對(duì)象(沒(méi)有屬性)ZeroDivisionError除數(shù)為0時(shí)報(bào)錯(cuò)ValueError傳入無(wú)效的參數(shù),或傳入一個(gè)調(diào)用者不期望的值,即使值的類(lèi)型是正確的SyntaxError語(yǔ)法錯(cuò)誤02try-except語(yǔ)句用于捕獲和處理異常,確保程序的健壯性和穩(wěn)定性。try-except語(yǔ)句else子句在沒(méi)有發(fā)生異常時(shí)執(zhí)行,finally子句無(wú)論是否發(fā)生異常都會(huì)執(zhí)行。else與finally子句異常處理機(jī)制07項(xiàng)目實(shí)訓(xùn)——學(xué)生畫(huà)像系統(tǒng)構(gòu)建項(xiàng)目背景2023年3月,多所高校悄悄給貧困學(xué)生飯卡打錢(qián),引發(fā)社會(huì)熱議,如上圖所示。這種“隱形資助”通過(guò)大數(shù)據(jù)分析,精準(zhǔn)識(shí)別困難學(xué)生,改變了傳統(tǒng)資助模式,有效保護(hù)了學(xué)生的隱私和自尊。使用Python采集和分析學(xué)生數(shù)據(jù),構(gòu)建學(xué)生畫(huà)像系統(tǒng),精準(zhǔn)識(shí)別經(jīng)濟(jì)困難學(xué)生。構(gòu)建學(xué)生畫(huà)像項(xiàng)目任務(wù)分析學(xué)生多維特征,構(gòu)建畫(huà)像并標(biāo)簽化,為資助決策提供依據(jù)。收集學(xué)生多維度數(shù)據(jù),進(jìn)行清洗、預(yù)處理和特征提取,確保數(shù)據(jù)質(zhì)量。0102數(shù)據(jù)收集與處理數(shù)據(jù)分析與畫(huà)像構(gòu)建項(xiàng)目分析技術(shù)路線采集數(shù)據(jù)、處理數(shù)據(jù)、分析數(shù)據(jù)、構(gòu)建畫(huà)像并計(jì)算資助金額。代碼實(shí)現(xiàn)通過(guò)Python代碼實(shí)現(xiàn)數(shù)據(jù)處理、分析和畫(huà)像構(gòu)建,計(jì)算學(xué)生經(jīng)濟(jì)等級(jí)和資助金額。項(xiàng)目實(shí)現(xiàn)擴(kuò)展數(shù)據(jù)集引入更多篩選維度建立全面評(píng)價(jià)體系實(shí)施動(dòng)態(tài)資助分配機(jī)制。優(yōu)化方案項(xiàng)目?jī)?yōu)化學(xué)生資助工作需技術(shù)支撐和數(shù)據(jù)驅(qū)動(dòng),不斷調(diào)整優(yōu)化,實(shí)現(xiàn)精準(zhǔn)資助。實(shí)踐意義總結(jié)與啟示謝謝大家第四章函數(shù)05CONTENTS目錄函數(shù)的定義和調(diào)用02模塊化程序設(shè)計(jì)與函數(shù)01函數(shù)的參數(shù)傳遞03函數(shù)的進(jìn)階應(yīng)用01040105Lambda表達(dá)式的概念及應(yīng)用random模塊的概念及應(yīng)用異常處理項(xiàng)目實(shí)訓(xùn):學(xué)生畫(huà)像系統(tǒng)模塊化設(shè)計(jì)0607實(shí)例4-1:計(jì)算矩陣的周長(zhǎng)和面積實(shí)例4-2:判斷閏年實(shí)例4-3:基于標(biāo)簽化的多類(lèi)型文本分類(lèi)實(shí)例4-4:會(huì)員購(gòu)物結(jié)算實(shí)例4-5:*args和**kwargs的組合應(yīng)用——?jiǎng)討B(tài)構(gòu)建神經(jīng)網(wǎng)絡(luò)層實(shí)例4-6:*和**的組合應(yīng)用——?jiǎng)討B(tài)構(gòu)建神經(jīng)網(wǎng)絡(luò)層實(shí)例4-7:通過(guò)函數(shù)的嵌套調(diào)用實(shí)現(xiàn)智能客服對(duì)話菜單實(shí)例4-8:通過(guò)函數(shù)的嵌套調(diào)用實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)與預(yù)測(cè)實(shí)例4-9:計(jì)算目錄總大?。ǚ种螁?wèn)題)實(shí)例4-10:函數(shù)的遞歸調(diào)用在人工智能領(lǐng)域路徑規(guī)劃中的應(yīng)用實(shí)例4-11:在多個(gè)模塊之間共享數(shù)據(jù)實(shí)例4-12:存儲(chǔ)人機(jī)交互的歷史數(shù)據(jù)實(shí)例4-13:使用Lambda表達(dá)式簡(jiǎn)化人工智能數(shù)據(jù)處理流程實(shí)例4-14:隨機(jī)紅包分配器實(shí)例4-15:隨機(jī)選人器實(shí)例4-16:生成隨機(jī)驗(yàn)證碼實(shí)例4-17:模擬生成序列號(hào)項(xiàng)目實(shí)訓(xùn):學(xué)生畫(huà)像系統(tǒng)模塊化設(shè)計(jì)應(yīng)用案例本章案例概覽01模塊化程序設(shè)計(jì)與函數(shù)模塊化將程序分解為功能單一的模塊,使代碼結(jié)構(gòu)清晰,便于理解。模塊化設(shè)計(jì)降低了模塊間的耦合度,修復(fù)錯(cuò)誤時(shí)只需關(guān)注相關(guān)模塊,降低了維護(hù)成本。提高代碼可讀性增強(qiáng)代碼可維護(hù)性通過(guò)封裝通用功能為模塊,可避免重復(fù)編寫(xiě)代碼,提高開(kāi)發(fā)效率。新功能可通過(guò)編寫(xiě)新模塊并集成到現(xiàn)有系統(tǒng)中,使程序能靈活應(yīng)對(duì)需求變化。促進(jìn)代碼重用支持程序擴(kuò)展性模塊化程序設(shè)計(jì)目的函數(shù)定義函數(shù)是執(zhí)行特定功能的語(yǔ)句組合,由函數(shù)名、參數(shù)、函數(shù)體和返回值組成,支持多種參數(shù)傳遞方式。內(nèi)置函數(shù)是Python預(yù)先定義好的函數(shù),如print()函數(shù)、len()函數(shù)等,而自定義函數(shù)則需要開(kāi)發(fā)者通過(guò)def定義。定義函數(shù)的語(yǔ)法如下。def函數(shù)名(形參1,形參2,...):"""函數(shù)文檔字符串(可選)"""

函數(shù)體

return返回值函數(shù)使用規(guī)則函數(shù)的使用需遵循“先定義后調(diào)用”的規(guī)則,通常將函數(shù)定義放在程序開(kāi)頭,并在函數(shù)之間、函數(shù)與主程序之間留空行,以保證代碼清晰。函數(shù)簡(jiǎn)介02函數(shù)的定義和調(diào)用0102函數(shù)不需要接收任何參數(shù)。defgreet1():print("Hello,World!")無(wú)參函數(shù)

函數(shù)需要接收一個(gè)或多個(gè)參數(shù)。defgreet2(name,mess):print(f"尊敬的{name}先生/女士,{mess}。")函數(shù)的定義03函數(shù)不返回任何值,常用于執(zhí)行某些操作或任務(wù)。無(wú)返回值函數(shù)04無(wú)函數(shù)通過(guò)return語(yǔ)句返回計(jì)算結(jié)果或特定值。defadd2(a,b):returna+b有返回值函數(shù)有參函數(shù)defadd1(a,b):

print(f"{a}+={a+b}")01對(duì)于無(wú)返回值函數(shù),在調(diào)用后無(wú)須接收返回值,通常執(zhí)行某些操作或任務(wù)。greet1() #調(diào)用無(wú)參無(wú)返回值函數(shù)add1(5,6)#調(diào)用有參無(wú)返回值函數(shù)) 無(wú)返回值函數(shù)的調(diào)用02函數(shù)的返回值是通過(guò)return語(yǔ)句將結(jié)果傳遞回函數(shù)調(diào)用者獲得的。返回值沒(méi)有類(lèi)型限制,也沒(méi)有個(gè)數(shù)限制。result=add2(4,6)#調(diào)用有返回值resntf"調(diào)用求和函數(shù),結(jié)果為{result}。")有返回值函數(shù)的調(diào)用函數(shù)的調(diào)用03函數(shù)的參數(shù)傳遞位置傳遞按參數(shù)順序?qū)?shí)參與形參對(duì)應(yīng),適用于參數(shù)數(shù)量固定且順序明確的場(chǎng)景。位置傳遞是函數(shù)地參數(shù)傳遞的一種基本方式。它通過(guò)參數(shù)的順序?qū)?shí)參與形參一一對(duì)應(yīng)。在調(diào)用函數(shù)時(shí),實(shí)參的值按定義順序被傳遞給形參。位置傳遞是函數(shù)調(diào)用中常用的參數(shù)傳遞方式,適用于參數(shù)數(shù)量固定且順序明確的場(chǎng)景。位置傳遞位置傳遞特點(diǎn)關(guān)鍵字傳遞特點(diǎn)關(guān)鍵字傳遞是指在調(diào)用函數(shù)時(shí)提供實(shí)參所對(duì)應(yīng)形參的參數(shù)名,根據(jù)參數(shù)名傳遞參數(shù),形如“函數(shù)名(參數(shù)1=值1,參數(shù)2=值2,...)”。關(guān)鍵字傳遞具有以下特點(diǎn)。(1)順序無(wú)關(guān)性:實(shí)參可以按任意順序傳遞,而無(wú)須依賴(lài)形參的定義順序。(2)可讀性強(qiáng):通過(guò)參數(shù)名顯式傳遞值,顯著提高了代碼的可讀性和可理解性。(3)靈活性高:特別適用于參數(shù)較多或需要跳過(guò)某些默認(rèn)參數(shù)的場(chǎng)景,使函數(shù)調(diào)用更加直觀和便捷。關(guān)鍵字傳遞默認(rèn)值傳遞特點(diǎn)默認(rèn)值傳遞允許在調(diào)用函數(shù)時(shí)省略有默認(rèn)值的參數(shù),調(diào)用者可按需覆蓋默認(rèn)值。(1)簡(jiǎn)化調(diào)用:調(diào)用者可以省略有默認(rèn)值的參數(shù),減少調(diào)用的代碼量。(2)靈活性高:調(diào)用者可以根據(jù)需要覆蓋默認(rèn)值,以適應(yīng)不同的場(chǎng)景。(3)參數(shù)順序:默認(rèn)參數(shù)必須定義在非默認(rèn)參數(shù)之后,否則會(huì)引發(fā)語(yǔ)法錯(cuò)誤。默認(rèn)值傳遞*args傳遞*args可接收任意數(shù)量的位置參數(shù),將它們打包為一個(gè)元組,適用于參數(shù)數(shù)量不確定的場(chǎng)景。**kwargs傳遞**kwargs可接收任意數(shù)量的關(guān)鍵字參數(shù),將它們存儲(chǔ)為字典,適用于參數(shù)數(shù)量不確定的場(chǎng)景。包裹傳遞*解包裹*可將序列解包為位置參數(shù),便于將集合傳遞給函數(shù)**解包裹**可將映射解包為關(guān)鍵字參數(shù),便于將字典傳遞給函數(shù)。解包裹傳遞04函數(shù)的進(jìn)階應(yīng)用函數(shù)嵌套調(diào)用可將復(fù)雜問(wèn)題分解為多個(gè)子問(wèn)題,使代碼結(jié)構(gòu)更清晰,邏輯更易于理解。嵌套調(diào)用優(yōu)勢(shì)函數(shù)嵌套調(diào)用遞歸調(diào)用原理函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接調(diào)用自身,通常用于解決可以分解為相似子問(wèn)題的問(wèn)題。函數(shù)的遞歸調(diào)用的核心思想是,將一個(gè)問(wèn)題分解為規(guī)模更小的同類(lèi)問(wèn)題,直到問(wèn)題的規(guī)模足夠小為止,可以直接解決。下面通過(guò)函數(shù)的遞歸調(diào)用計(jì)算階乘。deffactorial(n):ifn==0orn==1:returnelse:returnn*factorial(n-1) #遞歸調(diào)用result=factorial(5) #結(jié)果為120函數(shù)遞歸調(diào)用Python中變量作用域包括:局部作用域嵌套作用域全局作用域內(nèi)置作用域0102局部變量在函數(shù)調(diào)用時(shí)創(chuàng)建,執(zhí)行完成后銷(xiāo)毀。全局變量在程序啟動(dòng)時(shí)創(chuàng)建,結(jié)束時(shí)銷(xiāo)毀。global_var="我是全局變量"#定義全局變量defmy_function():local_var="我是局部變量"#定義局部變量print("在函數(shù)內(nèi)部訪問(wèn)全局變量:",global_var)print("在函數(shù)內(nèi)部訪問(wèn)局部變量:",local_var)my_function()變量作用域變量生命周期變量作用域與生命周期05Lambda表達(dá)式的概念及應(yīng)用Lambda表達(dá)式特點(diǎn)Lambda表達(dá)式是簡(jiǎn)潔的匿名函數(shù),無(wú)函數(shù)名,只包含一個(gè)表達(dá)式,適用于將函數(shù)作為參數(shù)傳遞的場(chǎng)景。其語(yǔ)法如下。lambda參數(shù)1,參數(shù)2,...:表達(dá)式下面展示了如何使用Lambda表達(dá)式計(jì)算兩個(gè)數(shù)字的和。add=lambdaa,b:a+bresult=add(3,5)#輸出“8”Lambda表達(dá)式概念map()函數(shù)與Lambda表達(dá)式結(jié)合,可對(duì)可迭代對(duì)象中的元素應(yīng)用指定函數(shù),進(jìn)行批量轉(zhuǎn)換。與map()函數(shù)結(jié)合filter()函數(shù)與Lambda表達(dá)式結(jié)合,可篩選出滿足條件的元素,提高數(shù)據(jù)處理效率。與filter()函數(shù)結(jié)合sorted()函數(shù)與Lambda表達(dá)式結(jié)合,可按指定鍵函數(shù)對(duì)數(shù)據(jù)進(jìn)行排序,實(shí)現(xiàn)靈活的排序方式。與sorted()函數(shù)結(jié)合Lambda表達(dá)式應(yīng)用06random模塊的概念及應(yīng)用生成隨機(jī)數(shù)隨機(jī)選擇元素(1)random.choice(seq):從序列seq中隨機(jī)選擇一個(gè)元素。(2)random.choices(seq,k=n):從序列seq中隨機(jī)選擇n個(gè)元素(可重復(fù))。(3)random.sample(seq,k=n):從序列seq中隨機(jī)選擇n個(gè)元素(不可重復(fù))。隨機(jī)打亂順序使用random.shuffle(seq):將序列seq中的元素隨機(jī)打亂(原地修改)。random模塊概念(1)random.random():生成一個(gè)[0.0,1.0)范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)。(2)random.uniform(a,b):生成一個(gè)[a,b]范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)。(3)random.randint(a,b):生成一個(gè)[a,b]范圍內(nèi)的隨機(jī)整數(shù)。種子的特點(diǎn)在random模塊中,隨機(jī)數(shù)生成器是基于偽隨機(jī)數(shù)算法的工具,用于生成隨機(jī)數(shù)序列。偽隨機(jī)數(shù)序列的生成依賴(lài)于一個(gè)初值,該值被稱(chēng)為種子。通過(guò)設(shè)置種子,可以控制隨機(jī)數(shù)生成器的行為,確保生成的隨機(jī)數(shù)序列是可重復(fù)的。其語(yǔ)法如下:random.seed(seed)#seed是種子值,可以是整數(shù)、浮點(diǎn)數(shù)或None。下面展示如何通過(guò)設(shè)置種子來(lái)控制隨機(jī)數(shù)序列的生成。importrandomrandom.seed(42)#設(shè)置種子print(random.random())#輸出“0.6394267984578837”print(random.random())#輸出“0.025010755222666936”random模塊的應(yīng)用07項(xiàng)目實(shí)訓(xùn)——學(xué)生畫(huà)像系統(tǒng)模塊化設(shè)計(jì)隨著智慧校園建設(shè)的不斷推進(jìn),學(xué)生行為數(shù)據(jù)的采集與分析成為提升教育質(zhì)量和管理效率的重要手段。學(xué)生畫(huà)像系統(tǒng)通過(guò)對(duì)學(xué)生的行為數(shù)據(jù)(學(xué)習(xí)習(xí)慣、社交活動(dòng)、消費(fèi)記錄等)進(jìn)行分析,生成個(gè)性化的學(xué)生畫(huà)像,為學(xué)校提供精準(zhǔn)的學(xué)生成長(zhǎng)支持和管理決策依據(jù)。項(xiàng)目背景通過(guò)模塊化設(shè)計(jì),結(jié)合函數(shù)的定義和調(diào)用的知識(shí),致力于實(shí)現(xiàn)一個(gè)智慧校園中的學(xué)生畫(huà)像系統(tǒng)。利用食堂的就餐消費(fèi)大數(shù)據(jù),對(duì)在食堂消費(fèi)次數(shù)多、每餐平均消費(fèi)額度低的學(xué)生發(fā)放餐補(bǔ)。項(xiàng)目任務(wù)數(shù)據(jù)處理模塊數(shù)據(jù)采集模塊數(shù)據(jù)采集模塊負(fù)責(zé)全面收集學(xué)生的就餐消費(fèi)大數(shù)據(jù),作為構(gòu)建學(xué)生畫(huà)像的基礎(chǔ)。通過(guò)學(xué)校系統(tǒng)獲取學(xué)生每月就餐記錄,以嵌套列表形式存儲(chǔ)。資助實(shí)施模塊負(fù)責(zé)通過(guò)設(shè)定不同的資助金額,確保資助資源的合理分配。項(xiàng)目分析數(shù)據(jù)處理模塊負(fù)責(zé)對(duì)收集的數(shù)據(jù)進(jìn)行清洗、預(yù)處理和特征提取,包括展平嵌套列表以便統(tǒng)計(jì)數(shù)據(jù),以及篩選就餐次數(shù)達(dá)到一定標(biāo)準(zhǔn)的學(xué)生數(shù)據(jù)。數(shù)據(jù)分析模塊數(shù)據(jù)分析模塊負(fù)責(zé)對(duì)餐費(fèi)均值、總費(fèi)用和消費(fèi)次數(shù)等數(shù)據(jù),進(jìn)行深入的分析。通過(guò)計(jì)算學(xué)校餐費(fèi)均值和學(xué)生餐費(fèi)均值,評(píng)估學(xué)生的經(jīng)濟(jì)水平。學(xué)生畫(huà)像生成模塊學(xué)生畫(huà)像生成模塊負(fù)責(zé)根據(jù)數(shù)據(jù)分析結(jié)果,將分析結(jié)果標(biāo)簽化,構(gòu)建學(xué)生畫(huà)像。數(shù)據(jù)分析模塊機(jī)器學(xué)習(xí)算法擴(kuò)展功能模塊優(yōu)化用戶(hù)體驗(yàn)利用機(jī)器學(xué)習(xí)算法(聚類(lèi)分析、決策樹(shù)等)更精準(zhǔn)地識(shí)別學(xué)生的行為模式和經(jīng)濟(jì)狀況,從而生成更細(xì)致的畫(huà)像。引入機(jī)器學(xué)習(xí)模型以提升畫(huà)像生成的精準(zhǔn)度。提供可視化界面以直觀地展示畫(huà)像和成長(zhǎng)分析結(jié)果,同時(shí)支持個(gè)性化配置,允許根據(jù)需求自定義畫(huà)像規(guī)則,從而提高系統(tǒng)的實(shí)用性和靈活性。項(xiàng)目?jī)?yōu)化通過(guò)本項(xiàng)目,學(xué)習(xí)了Python的函數(shù)定義語(yǔ)法及調(diào)用;理解了畫(huà)像的基本結(jié)構(gòu)和,實(shí)現(xiàn)沒(méi)程;掌握了如何將所學(xué)知識(shí)應(yīng)用到實(shí)際項(xiàng)目中。項(xiàng)目收獲項(xiàng)目改進(jìn)項(xiàng)目拓展本項(xiàng)目實(shí)訓(xùn)通過(guò)引入機(jī)器學(xué)習(xí)算法、擴(kuò)展數(shù)據(jù)維度,以及優(yōu)化用戶(hù)體驗(yàn)顯著提升了系統(tǒng)的精準(zhǔn)性和實(shí)用性。一是利用機(jī)器學(xué)習(xí)算法(聚類(lèi)分析、決策樹(shù)等)更精準(zhǔn)地識(shí)別學(xué)生的行為模式和經(jīng)濟(jì)狀況。二是擴(kuò)展功能模塊以支持更多數(shù)據(jù)維度,如心理健康、體育活動(dòng)等,并引入機(jī)器學(xué)習(xí)模型以提升畫(huà)像生成的精準(zhǔn)度。三是優(yōu)化用戶(hù)體驗(yàn)。項(xiàng)目總結(jié)謝謝大家第五章高級(jí)數(shù)據(jù)類(lèi)型及常見(jiàn)操作CONTENTS目錄高級(jí)數(shù)據(jù)類(lèi)型0101序列的通用操作02項(xiàng)目實(shí)訓(xùn):業(yè)務(wù)數(shù)據(jù)預(yù)處理與分析01030101實(shí)例5-1:高級(jí)數(shù)據(jù)類(lèi)型在報(bào)告分析項(xiàng)目的應(yīng)用實(shí)例5-2:身份證號(hào)信息提取實(shí)例5-3:手機(jī)號(hào)脫敏實(shí)例5-4:

成績(jī)數(shù)據(jù)分析實(shí)例5-5:省份區(qū)域歸屬判斷實(shí)例5-6敏感詞匯檢測(cè)項(xiàng)目實(shí)訓(xùn):業(yè)務(wù)數(shù)據(jù)預(yù)處理與分析項(xiàng)目——行為監(jiān)察應(yīng)用案例本章案例概覽01高級(jí)數(shù)據(jù)類(lèi)型高級(jí)數(shù)據(jù)類(lèi)型簡(jiǎn)介高級(jí)數(shù)據(jù)類(lèi)型定義高級(jí)數(shù)據(jù)類(lèi)型可將多種數(shù)據(jù)組織起來(lái),便于操作。Python中的列表、元組、字符串、字典和集合等高級(jí)數(shù)據(jù)類(lèi)型功能豐富,可處理復(fù)雜數(shù)據(jù)結(jié)構(gòu)和任務(wù)。高級(jí)數(shù)據(jù)類(lèi)型應(yīng)用本章通過(guò)案例詳細(xì)介紹列表、元組、字典、集合的定義和特征,并展示其應(yīng)用,如列表用于動(dòng)態(tài)數(shù)據(jù)集合,元組用于固定數(shù)據(jù)存儲(chǔ)等。字符串定義與特征字符串定義字符串是Python的基本數(shù)據(jù)類(lèi)型,用于表示文本數(shù)據(jù),是有序的字符序列,可包含字母、數(shù)字等,用引號(hào)定義,如`sentence="Hello,world!"`。字符串特征字符串支持拼接、切片、查找等操作,還可表示二進(jìn)制數(shù)據(jù),廣泛應(yīng)用于數(shù)據(jù)解析、格式化輸出等場(chǎng)景。元組定義與特征元組定義元組是有序集合,元素不可修改,適用于存儲(chǔ)固定數(shù)據(jù),如`colors=(255,255,0)`表示RGB顏色代碼。元組特征元組不可變,保證數(shù)據(jù)安全性,適用于固定配置參數(shù)或常量集合。列表定義與特征列表定義列表是有序可變?nèi)萜鳎纱鎯?chǔ)多種類(lèi)型元素,支持動(dòng)態(tài)增刪和修改。如:scores=[85,92,78] #學(xué)生成績(jī)數(shù)據(jù)shopping_list=['apple','banana','orange','milk','bread'] #購(gòu)物車(chē)商品列表特征列表有序、異構(gòu)、元素可重復(fù)、動(dòng)態(tài)可變,支持索引和切片,適用于頻繁修改的數(shù)據(jù)集合。集合特征集合元素依據(jù)哈希值存儲(chǔ),不可變對(duì)象可哈希,可變對(duì)象不可哈希。集合定義集合是無(wú)序且元素唯一的容器,用于成員關(guān)系測(cè)試和去重,支持交集、并集等運(yùn)算,如:num={1,2,3}#數(shù)字集合fruits2={'banana','grape','kiwi'}#字符串集合集合定義與特征字典定義字典是鍵值對(duì)形式的容器,通過(guò)鍵高效訪問(wèn)值,如`user_info={"name":"Alice","age":25}`。字典特征字典動(dòng)態(tài)可變、無(wú)序、鍵唯一且不可變,適用于數(shù)據(jù)存儲(chǔ)和檢索。字典定義與特征關(guān)鍵詞統(tǒng)計(jì)利用字符串操作統(tǒng)計(jì)報(bào)告中關(guān)鍵詞頻率,如`report.count(keyword)`,并將結(jié)果存儲(chǔ)在字典中。報(bào)告摘要生成根據(jù)關(guān)鍵詞頻率生成報(bào)告摘要,通過(guò)循環(huán)和字符串格式化輸出摘要內(nèi)容。案例5-1:報(bào)告分析項(xiàng)目應(yīng)用#報(bào)告文本report='2023年市場(chǎng)分析報(bào)告顯示Python在數(shù)據(jù)分析領(lǐng)域的應(yīng)用越來(lái)越廣泛Python的簡(jiǎn)潔語(yǔ)法和豐富庫(kù)支持使其成為數(shù)據(jù)科學(xué)家的首選工具

然而Java在企業(yè)級(jí)應(yīng)用中的優(yōu)勢(shì)依然明顯

尤其是在大型系統(tǒng)中'#定義關(guān)鍵詞列表keywords=["Python","Java","數(shù)據(jù)分析","企業(yè)級(jí)應(yīng)用"]#統(tǒng)計(jì)關(guān)鍵詞出現(xiàn)頻率keyword_count={keyword:report.count(keyword)forkeywordinkeywords}print("關(guān)鍵詞出現(xiàn)頻率:",keyword_count)#生成報(bào)告摘要summary="報(bào)告摘要:\n"forkeyword,countinkeyword_count.items():summary+=f"-{keyword}出現(xiàn)了{(lán)count}次\n"print(summary)應(yīng)用案例案例5-1:高級(jí)數(shù)據(jù)類(lèi)型在報(bào)告分析項(xiàng)目的應(yīng)用程序執(zhí)行結(jié)果如下:關(guān)鍵詞出現(xiàn)頻率:{'Python':2,'Java':1,'數(shù)據(jù)分析':1,'企業(yè)級(jí)應(yīng)用':1}報(bào)告摘要:-Python出現(xiàn)了2次-Java出現(xiàn)了1次-數(shù)據(jù)分析

出現(xiàn)了1次-企業(yè)級(jí)應(yīng)用

出現(xiàn)了1次02序列的通用操作序列(sequence)是Python的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)一組有序的元素集合,序列可以包含一個(gè)或多個(gè)元素(元素可以是任意類(lèi)型,包括其他序列),也可以是空序列。Python內(nèi)置的序列數(shù)據(jù)類(lèi)型包括列表(list)、元組(tuple)、字符串(str)等。這些序列類(lèi)型具有一些共性。如內(nèi)部元素之間都存在先后順序,都支持序列的拼接、重復(fù)、索引、切片、測(cè)試長(zhǎng)度、最大值、最小值和存在性測(cè)試等操作。序列序列中的每個(gè)元素都有兩個(gè)唯一的序號(hào),一個(gè)正向(從0開(kāi)始)序號(hào)和一個(gè)逆向(從-1開(kāi)始)序號(hào)。其語(yǔ)法如下:序列名[序號(hào)]s序列,如圖5-1所示。

圖5-1s序列(字符串)元素的位置元素的逆向(從-1開(kāi)始)序號(hào)s序列:元素的正向(從-1開(kāi)始)序號(hào)索引——索引規(guī)則序列通過(guò)索引訪問(wèn)元素,正向索引從0開(kāi)始,逆向索引從-1開(kāi)始,索引范圍為`-len(s)`到`len(s)-1`。(1)正向索引:從0開(kāi)始,第1個(gè)元素為s[0],第2個(gè)元素為s[1],依此類(lèi)推,最后一個(gè)元素為s[len(s)-1]。(2)逆向索引:從-1開(kāi)始,最后一個(gè)元素為s[-1],第1個(gè)元素為s[-len(s)]。(3)索引范圍:有效索引范圍為-len(s)到len(s)-1,超出范圍會(huì)引發(fā)IndexError。(4)索引類(lèi)型:序號(hào)必須為整數(shù),否則會(huì)引發(fā)TypeError如`s='Python'`,`s[0]`輸出`'P'`,`s[-1]`輸出`'n'`,超出范圍或非整數(shù)索引會(huì)報(bào)錯(cuò)。s='Python'print(s[0]) #輸出:'P'print(s[-1]) #輸出:'n'print(s[10]) #出現(xiàn)錯(cuò)誤IndexError;stringindexoutofrangeprint(s['a']) #出現(xiàn)錯(cuò)誤TypeError:stringindicesmustbeintegers需要注意的是,python字符串中的每個(gè)字符(包括英文、中文、空格和符號(hào))都占一個(gè)索引位。索引示例通過(guò)序號(hào)訪問(wèn)序列中特定元素切片(slice)——截取序列的一部分切片語(yǔ)法切片語(yǔ)法為`s[i:j]`或`s[i:j:k]`,分別表示從索引`i`到`j-1`,步長(zhǎng)為`k`。

i:起始索引(包含s[i]),若缺省,默認(rèn)為0。

j:結(jié)束索引(不包含s[j]),若缺省,默認(rèn)為序列長(zhǎng)度。

k:步長(zhǎng),支持正負(fù)值,負(fù)值表示逆向切片。若缺省,默認(rèn)為1。注意:切片操作返回新序列,原序列不變。步長(zhǎng)為負(fù)時(shí),i和j的順序需反向指定。如果截取范圍內(nèi)沒(méi)有數(shù)據(jù),則返回空序列;超出范圍不報(bào)錯(cuò)。切片示例s='abcdefg'print(s[1:3])#輸出:'bc'(索引1到2)print(s[8:2])#輸出:''(無(wú)數(shù)據(jù))print(s[:])#輸出:'abcdefg'(完整序列)print(s[:2])#輸出:'ab'(索引0到1)print(s[::2])#輸出:'aceg'(步長(zhǎng)為2)print(s[::-1])#輸出:'gfedcba'(逆序)1、公民身份號(hào)碼里面隱含出生日期、出生地、性別等信息。身份證倒數(shù)第二位是性別信息,奇數(shù)表示“男”,偶數(shù)表示“女”。id_number=input('請(qǐng)輸入身份證號(hào):')#例如fint(id_number[16])%2==0: #索引倒數(shù)第二位,轉(zhuǎn)整數(shù),判定奇偶#ifid_number[16]in'02468': #用字符串的成員測(cè)試方法gender='女'else:gender='男'print(f'性別為{gender}')2、利用條件表達(dá)式實(shí)現(xiàn)更簡(jiǎn)潔。print(f'性別為女')ifinput()[-2]in'02468'elseprint(f'性別為男')應(yīng)用案例案例5-2:身份證號(hào)信息提取拼接與重復(fù)操作序列拼接使用`+`將相同類(lèi)型序列拼接,如`last_name+first_name`拼接字符串,`stu_name+score_2024`拼接列表。first_name=input() #輸入名,如:李last_name=input() #輸入姓,如:明full_name=last_name+first_name#將姓與名拼接為一個(gè)字符串,如李明print(full_name)#輸出拼接后是一個(gè)對(duì)象,輸出時(shí)中間無(wú)空格拼接與重復(fù)操作序列重復(fù)使用`*`重復(fù)序列,如`'-'*30`生成重復(fù)字符串,`n*0`或`n*(-5)`返回空序列。#字符串重復(fù)print('-'*30)#輸出:'------------------------------'print(f'{"歡迎光臨":^30}')#輸出居中對(duì)齊的“歡迎光臨”print('-'*30)#輸出:'------------------------------'#重復(fù)次數(shù)為0或負(fù)數(shù)print('-'*0)#輸出:''(空字符串)print('-'*(-5))#輸出:''(空字符串)手機(jī)號(hào)屬于個(gè)人隱私信息。將用戶(hù)輸入的手機(jī)號(hào)的4-7位用“*”替換。tel=tel_mask=tel[:3]+"*"*4+tel[-4:] #字符串切片、拼接和重復(fù)print(tel_mask) #輸出結(jié)果:132****3211應(yīng)用案例案例5-3:手機(jī)號(hào)脫敏最大值與最小值計(jì)算使用`max()`和`min()`函數(shù)計(jì)算序列最大值和最小值,可指定比較規(guī)則,如`max(s,key=len)`。Python提供了內(nèi)置函數(shù)max()和min(),用于返回序列中的最大值和最小值。若序列元素為數(shù)值類(lèi)型,則直接比較數(shù)值大小。若序列元素為字符串類(lèi)型,則比較字符串的Unicode編碼值。示例代碼如下:n=(1,10,9,5)#數(shù)值類(lèi)型print(f"最大值:{max(n)},最小值{min(n)}")#最大值:10,最小值1s=['1','009','10','5']#字符串類(lèi)型print(f"最大值:{max(s)},最小值{min(s)}")#最大值:5,最小值009序列最大值與最小值在max()和min()函數(shù)中,可用key關(guān)鍵字指定比較規(guī)則。示例代碼如下:s=['1','009','10','5']

#字符串類(lèi)型print("最大值:"+max(s,key=len))

#最大值:009print("最大值:"+max(s,key=int))

#最大值:10序列最大值與最小值

從某文件中讀取一列數(shù)據(jù)(無(wú)序),使用`max()`和`min()`計(jì)算最高分和最低分,`sum()`計(jì)算總分。輸入數(shù)據(jù)前面兩個(gè)元素?cái)?shù)據(jù)是編號(hào)、姓名,后面的是若干名評(píng)委給出的評(píng)分。分別求出最高分、最低分和總分。代碼如下:

應(yīng)用案例案例5-4:成績(jī)數(shù)據(jù)分析案例user_input="2204056小張1008095889676658598100"scores=user_input.split()#將信息按空格分割,形成列表,每個(gè)元素是字符串scores_nums=list(map(int,scores[2:]))#切片截取所有成績(jī)字符串并轉(zhuǎn)為整數(shù)print(f'最高分:{max(scores_nums)}')#最高分:100print(f'最低分:{min(scores_nums)}')#最低分:65print(f'總

分:{sum(scores_nums)}')#總

分:883print(f'平均分:{sum(scores_nums)/len(scores_nums)}')#平均分:88.3成員測(cè)試操作

成員測(cè)試用于判斷某個(gè)元素是否存在于序列中(如字符串、列表、元組、字典的鍵或集合)。Python提供了“in”和“notin”運(yùn)算符,返回布爾值(True或False)。成員測(cè)試語(yǔ)法:xins

#如果x是s的成員,返回True,否則返回Falsexnotins

#如果x不是s的成員,返回True,否則返回False成員測(cè)試一般用于條件運(yùn)算,根據(jù)測(cè)試結(jié)果決定執(zhí)行后續(xù)程序中的某個(gè)分支。應(yīng)用案例案例5-5:省份區(qū)域歸屬判斷northeast=['遼寧','吉林','黑龍江']province=input("輸入省份名稱(chēng):")ifprovinceinnortheast:print(f'{province}是東北三省之一')else:print(f'{province}不是東北三省之一')利用成員測(cè)試(in操作符)和條件判斷,快速判斷用戶(hù)輸入的省份是否在指定列表中,適用于簡(jiǎn)單的區(qū)域分類(lèi)場(chǎng)景。此例利用字符串匹配和成員測(cè)試,快速識(shí)別敏感詞匯,適用于簡(jiǎn)單的文本過(guò)濾場(chǎng)景。

隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)信息中不良內(nèi)容和敏感詞匯的傳播問(wèn)題日益突出。為了維護(hù)網(wǎng)絡(luò)環(huán)境的健康,敏感詞匯檢測(cè)成為一項(xiàng)重要任務(wù)。實(shí)現(xiàn)敏感詞匯檢測(cè)的主要步驟為:先構(gòu)建一個(gè)包含敏感詞匯的列表;再編寫(xiě)檢測(cè)函數(shù),判斷用戶(hù)輸入的詞匯是否在敏感詞匯列表中;最后通過(guò)用戶(hù)交互,輸入詞匯并輸出檢測(cè)結(jié)果。應(yīng)用案例案例5-6:敏感詞匯檢測(cè)#定義一個(gè)敏感詞匯列表

sensitive_words=["殺人","打架","微信","多少錢(qián)"]#根據(jù)實(shí)際來(lái)定義defis_sensitive_word(word):#檢查詞匯是否在敏感詞匯列表中 returnwordins

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論