本書是一本面向初學者的Python編程教材,系統(tǒng)講解了Python語言的語法、數(shù)據(jù)結(jié)構、程序設計以及應用開發(fā)。全書共11章,內(nèi)容涵蓋Python語言概述、基本數(shù)據(jù)類型與運算、組合數(shù)據(jù)類型、選擇與循環(huán)語句結(jié)構、函數(shù)、文件操作、詞云與PyInstaller庫應用、數(shù)據(jù)分析與數(shù)據(jù)可視化、圖形用戶界面(GUI)開發(fā)以及多個經(jīng)典應用領域。本書以示例形式對Python功能進行講解,突出應用特色,讓讀者全面了解Python的各個應用領域。本書講解簡潔明了,案例豐富,可作為高等學校計算機、軟件工程、計算機網(wǎng)絡和非計算機專業(yè)理工科等相關專業(yè)學生學習程序設計的教材,也可作為Python程序設計人員的參考用書。
(1)涵蓋了Python語言在數(shù)據(jù)庫、網(wǎng)絡爬蟲、Web網(wǎng)站、游戲、人工智能、嵌入式硬件等當前熱門領域的應用開發(fā)。(2)語言簡潔明了,介紹由淺入深,適合作為高等學校計算機和非計算機專業(yè)的程序設計教材。(3)示例豐富,每章后面有實驗和習題,便于對所學知識的理解、掌握和鞏固。
前言
在當今數(shù)字化時代,計算機技術的飛速發(fā)展正深刻地改變著我們的生活和工作方式。大數(shù)據(jù)和人工智能技術的崛起,更是讓編程語言的重要性日益凸顯。在眾多編程語言中,Python以其簡潔明了的語法、強大的功能以及豐富的庫支持,迅速成為最受歡迎的編程語言之一。它不僅適合計算機專業(yè)人員學習和使用,更是非計算機專業(yè)人員進入編程世界的理想選擇。
Python語言具有簡單易學、免費開源的特點,其學習門檻低、上手快,能夠快速開發(fā)出具有行業(yè)應用特色的程序。Python語言還擁有高效、豐富和龐大的標準庫與擴展庫,這些庫為Python在不同行業(yè)領域的成功應用提供了強有力的支撐。無論是在數(shù)據(jù)分析、機器學習、Web開發(fā)領域,還是游戲開發(fā)、人工智能等領域,Python都展現(xiàn)出了其強大的適應性和靈活性。
本書正是基于這樣的背景而編寫的。它旨在為高等院校計算機、軟件工程、計算機網(wǎng)絡及非計算機專業(yè)的相關理工科專業(yè)的學生提供一本系統(tǒng)、全面的Python程序設計教材。同時,對于廣大非計算機專業(yè)的讀者,本書也是一本實用的自學指南。書中不僅詳細講解了Python語言的基礎知識,還通過豐富的案例分析,展示了Python在各個領域的實際應用。
本書的特點是知識點講解簡潔明了,案例豐富,強調(diào)實踐與動手操作。通過每個章節(jié)的案例分析,讀者將能夠熟練掌握Python在各個領域的應用。全書共分為11章,其中前7章為基礎知識,第8~11章介紹Python的常用功能。內(nèi)容涵蓋Python的特點、開發(fā)環(huán)境、基本數(shù)據(jù)類型、運算符、組合數(shù)據(jù)類型、選擇與循環(huán)結(jié)構、函數(shù)、文件操作等基礎知識,以及數(shù)據(jù)分析、數(shù)據(jù)可視化、GUI開發(fā)、網(wǎng)絡爬蟲、Web開發(fā)、游戲開發(fā)、人工智能和嵌入式硬件開發(fā)等實際應用。每章后附有習題和實驗,幫助讀者鞏固所學知識。此外,為了方便教學和學習,本書還提供了配套的電子教案、源代碼和習題答案等資源,讀者可通過清華大學出版社網(wǎng)站下載。
本書由王德志擔任主編,李冬艷、楊陽、崔新偉擔任副主編。其中,第1~3章由崔新偉編寫,第4~6章由李冬艷編寫,第7、8章和附錄由楊陽編寫,第9~11章由王德志編寫。王德志對全書進行了統(tǒng)稿。盡管編者在編寫過程中付出了諸多努力,但由于編者水平有限,書中難免存在不足之處,懇請讀者給予批評指正。
在此,特別感謝郭紅、張云雷等老師對書稿的修改意見,感謝研究生李威、曹任傑同學對書稿的校驗。我們希望本書能夠成為讀者學習Python的良師益友,助力大家在編程之路上不斷進步。通過本書的學習,讀者不僅能夠掌握Python語言的基礎知識,還能夠深入了解Python在各個領域的實際應用,為未來的職業(yè)發(fā)展打下堅實的基礎。
編者
2025年3月
目錄
第1章Python語言概述/1
1.1Python語言發(fā)展簡介1
1.1.1Python語言歷史1
1.1.2Python語言特點1
1.1.3Python應用領域2
1.2集成開發(fā)環(huán)境3
1.2.1Python默認開發(fā)環(huán)境3
1.2.2PyCharm開發(fā)環(huán)境4
1.2.3Anaconda開發(fā)環(huán)境4
1.2.4VS Code4
1.3代碼編寫與執(zhí)行方法6
1.3.1Python語言的書寫規(guī)則6
1.3.2命令交互執(zhí)行方式6
1.3.3程序文件執(zhí)行方式7
1.4Python案例講解9
1.4.1簡單的輸入輸出程序9
1.4.2turtle繪制蟒蛇程序9
實驗一Python環(huán)境與基本操作10
習題一10
第2章基本數(shù)據(jù)類型與運算/12
2.1數(shù)據(jù)類型概述12
2.2常量與變量12
2.2.1標識符的命名規(guī)則13
2.2.2變量13
2.2.3關鍵字14
2.3數(shù)值型數(shù)據(jù)操作15
2.3.1數(shù)值型數(shù)據(jù)15
2.3.2數(shù)值運算符15
2.3.3數(shù)值運算函數(shù)17
2.3.4數(shù)值類型轉(zhuǎn)換函數(shù)18
2.4字符串數(shù)據(jù)操作18
2.4.1字符串數(shù)據(jù)18
2.4.2字符串的基本操作19
2.4.3字符串的內(nèi)置方法21
2.4.4操作字符串的內(nèi)置函數(shù)23
2.4.5字符串格式化方法24
2.5標準輸入輸出函數(shù)26
2.5.1輸入函數(shù)input()26
2.5.2輸出函數(shù)print()28
2.6擴展: math庫的使用30
2.6.1math庫的引用30
2.6.2math庫的常用數(shù)學常數(shù)和函數(shù)31
實驗二基本數(shù)據(jù)類型的操作32
習題二32
第3章組合數(shù)據(jù)類型/35
3.1組合數(shù)據(jù)類型概述35
3.2列表36
3.2.1列表的定義與賦值36
3.2.2列表的基本操作39
3.2.3列表的內(nèi)置方法39
3.2.4操作列表的內(nèi)置函數(shù)41
3.2.5range()函數(shù)的使用42
3.3元組43
3.3.1元組的定義與賦值43
3.3.2元組的基本操作44
3.4字典44
3.4.1字典的定義與賦值44
3.4.2字典的基本操作45
3.5集合48
3.5.1集合的定義與賦值48
3.5.2集合的基本操作48
3.6列表與其他數(shù)據(jù)類型的轉(zhuǎn)換49
3.6.1列表與字符串間的轉(zhuǎn)換49
3.6.2列表與字典間的轉(zhuǎn)換50
3.7擴展: random庫51
實驗三組合數(shù)據(jù)類型的操作52
習題三53
第4章選擇程序/55
4.1程序設計結(jié)構概述55
4.1.1算法的概念55
4.1.2算法的表示56
4.2關系運算符與邏輯運算符61
4.2.1關系運算符61
4.2.2邏輯運算符62
4.2.3優(yōu)先級63
4.3成員運算符與一致性運算符63
4.3.1成員運算符63
4.3.2一致性運算符64
4.4順序結(jié)構65
4.5選擇結(jié)構65
4.5.1單分支結(jié)構: if語句66
4.5.2雙分支結(jié)構: ifelse語句67
4.5.3三元運算符(條件表達式)68
4.5.4多分支結(jié)構: ifelifelse語句68
4.5.5if語句的嵌套結(jié)構70
4.6擴展: time庫和datetime庫的使用72
4.6.1calendar庫的使用72
4.6.2time和datetime庫的使用72
4.7綜合案例74
實驗四選擇結(jié)構使用80
習題四82
第5章循環(huán)語句結(jié)構/84
5.1循環(huán)語句結(jié)構概述84
5.2while循環(huán)語句的結(jié)構84
5.2.1while循環(huán)語句的基本結(jié)構84
5.2.2while循環(huán)語句的使用示例85
5.3forin循環(huán)語句的結(jié)構86
5.3.1forin循環(huán)語句的基本結(jié)構87
5.3.2forin循環(huán)語句的使用示例88
5.4嵌套循環(huán)語句91
5.5break與continue語句92
5.5.1break語句92
5.5.2continue語句94
5.5.3循環(huán)結(jié)構中的else子句95
5.6特殊循環(huán)——列表解析96
5.7異常捕捉98
5.7.1Python中的異常98
5.7.2捕捉異常100
5.7.3else和finally子句102
5.8擴展: turtle庫的使用102
5.8.1海龜繪圖概述102
5.8.2turtle庫常用方法103
5.8.3turtle庫繪圖示例104
5.9綜合案例105
實驗五循環(huán)結(jié)構使用113
習題五116
第6章函數(shù)/121
6.1函數(shù)的概念121
6.2常用Python標準庫122
6.3函數(shù)的定義、調(diào)用與返回值122
6.3.1函數(shù)的定義122
6.3.2函數(shù)的返回值123
6.3.3函數(shù)的調(diào)用123
6.4函數(shù)的參數(shù)傳遞128
6.4.1參數(shù)是否可變128
6.4.2不同類型的參數(shù)130
6.5變量的作用域133
6.5.1局部變量與全局變量的概念133
6.5.2使用關鍵字global語句聲明全局變量135
6.6函數(shù)的嵌套和遞歸135
6.6.1函數(shù)的嵌套調(diào)用135
6.6.2函數(shù)的遞歸調(diào)用136
6.7Python內(nèi)置函數(shù)138
6.8lambda函數(shù)的定義與使用138
6.8.1lambda函數(shù)的定義138
6.8.2在lambda表達式中調(diào)用其他函數(shù)139
6.9擴展: jieba庫的使用139
6.9.1jieba庫概述140
6.9.2jieba庫解析140
6.9.3文本詞頻統(tǒng)計141
6.10綜合案例142
實驗六函數(shù)的使用146
習題六148
第7章文件/151
7.1文件概念151
7.1.1文本文件和二進制文件151
7.1.2文本文件的編碼151
7.1.3文件指針的概念152
7.2文件的打開與關閉152
7.2.1打開文件152
7.2.2關閉文件154
7.3文件的讀寫154
7.3.1讀取文件數(shù)據(jù)154
7.3.2往文件寫入數(shù)據(jù)156
7.3.3文件的定位讀寫157
7.3.4讀寫二進制文件158
7.4CSV文件操作159
7.4.1CSV文件的概念和特點159
7.4.2數(shù)據(jù)的維度159
7.4.3向CVS文件中讀寫一維和二維數(shù)據(jù)160
7.5擴展: openpyxl庫的文件使用162
實驗七文件166
第8章詞云與PyInstaller庫應用/168
8.1WordCloud使用168
8.1.1WordCloud的安裝168
8.1.2WordCloud的使用169
8.2PyInstaller使用172
8.2.1PyInstaller安裝172
8.2.2使用PyInstaller打包172
8.2.3PyInstaller的參數(shù)173
8.3綜合案例: 基于共現(xiàn)提取人物關系可視化174
實驗八《紅樓夢》詞頻統(tǒng)計與詞云展示182
第9章數(shù)據(jù)分析入門/183
9.1數(shù)據(jù)分析概述183
9.1.1數(shù)據(jù)分析的基本概念183
9.1.2數(shù)據(jù)分析的基本流程183
9.1.3數(shù)據(jù)分析第三方庫的安裝184
9.2Matplotlib數(shù)據(jù)可視化184
9.2.1繪制基本圖形184
9.2.2添加坐標軸和圖標識186
9.2.3繪制多窗口187
9.2.4配置常用圖形參數(shù)188
9.2.5添加箭頭注釋189
9.3Pyecharts數(shù)據(jù)可視化191
9.3.1Pyecharts概述191
9.3.2繪制圖形192
9.3.3設置圖表配置參數(shù)196
9.3.4組合圖與并行多圖199
9.4NumPy多維數(shù)組201
9.4.1數(shù)組生成及屬性201
9.4.2數(shù)組切片203
9.4.3運算符操作數(shù)組204
9.4.4數(shù)組修改操作205
9.4.5常用數(shù)學函數(shù)與統(tǒng)計函數(shù)207
9.4.6線性代數(shù)207
9.4.7綜合案例208
9.5Pandas數(shù)據(jù)處理210
9.5.1Pandas數(shù)據(jù)結(jié)構210
9.5.2讀取CSV/XLSX格式文件生成數(shù)據(jù)幀213
9.5.3數(shù)據(jù)切片讀取214
9.5.4行列數(shù)據(jù)的增刪改操作217
9.5.5修改行列索引220
9.5.6數(shù)據(jù)篩選222
9.5.7統(tǒng)計分析224
9.5.8綜合案例225
9.6綜合案例: 森林火災數(shù)據(jù)可視化227
實驗九設計學生成績分析系統(tǒng)231
第10章圖形用戶界面(GUI)編程開發(fā)/232
10.1GUI開發(fā)第三方庫介紹232
10.1.1GUI開發(fā)基本概念232
10.1.2常用第三方GUI庫232
10.1.3EasyGUI特點233
10.1.4PyQt5特點234
10.2EasyGUI使用234
10.2.1EasyGUI安裝與常用窗體函數(shù)234
10.2.2EasyGUI按鈕窗體235
10.2.3EasyGUI單選與多選項窗體236
10.2.4EasyGUI文本輸入窗體237
10.2.5EasyGUI文本顯示窗體239
10.2.6EasyGUI目錄與文件窗體239
10.3PyQt5開發(fā)環(huán)境安裝240
10.3.1安裝庫文件240
10.3.2配置外部工具命令240
10.4PyQt5創(chuàng)建主窗體243
10.4.1繪制主窗體243
10.4.2轉(zhuǎn)換窗體代碼245
10.4.3編寫窗體運行程序245
10.4.4修改窗體246
10.5PyQt5常用控件使用247
10.5.1標簽247
10.5.2文本框249
10.5.3信號/槽和按鈕250
10.5.4下拉列表框253
10.5.5彈出消息框255
10.5.6表格控件255
10.6PyQt5設計多窗體259
10.6.1嵌入式多窗體259
10.6.2彈出式多窗體261
10.6.3主窗體與子窗體交互數(shù)據(jù)262
10.7Matplotlib圖形在PyQt5中的使用265
10.7.1總體設計思路265
10.7.2靜態(tài)Matplotlib圖形展示266
10.7.3動態(tài)Matplotlib圖形展示268
10.8PyQt5程序打包發(fā)布269
10.8.1打包第三方工具的安裝269
10.8.2打包命令269
10.9綜合案例: 基于GUI的學生成績管理軟件269
實驗十設計學生成績分析系統(tǒng)273
第11章其他經(jīng)典應用領域介紹/275
11.1Python熱門應用領域概述275
11.2數(shù)據(jù)庫操作應用276
11.2.1數(shù)據(jù)庫基礎知識276
11.2.2使用內(nèi)置的SQLite3數(shù)據(jù)庫276
11.2.3操作MySQL和SQL Server數(shù)據(jù)庫278
11.3網(wǎng)絡爬蟲應用279
11.3.1網(wǎng)絡爬蟲第三方庫安裝279
11.3.2requests庫的使用279
11.3.3HTML格式說明281
11.3.4beautifulsoup4庫的使用282
11.3.5爬取豆瓣電影網(wǎng)Top250283
11.4Web網(wǎng)站開發(fā)應用284
11.4.1Flask開發(fā)環(huán)境配置284
11.4.2路由286
11.4.3利用上下文獲得數(shù)據(jù)288
11.4.4超鏈接地址跳轉(zhuǎn)289
11.4.5靜態(tài)網(wǎng)頁模板渲染290
11.5游戲開發(fā)應用292
11.5.1Pygame庫介紹與安裝292
11.5.2Pygame游戲框架293
11.5.3添加一個運動圖像294
11.5.4鍵盤控制和發(fā)射子彈295
11.5.5利用精靈產(chǎn)生敵方坦克297
11.5.6精靈碰撞——多子彈與坦克碰撞298
11.6人工智能應用303
11.6.1人工智能與Python關系介紹303
11.6.2生成式人工智能(AIGC)平臺API接口使用303
11.7嵌入式硬件開發(fā)應用308
11.7.1Python在嵌入式設備中應用308
11.7.2嵌入式設備虛擬仿真平臺Wokwi使用310
附錄/312
附錄APython集成開發(fā)環(huán)境安裝312
附錄B常用Python學習網(wǎng)站312
附錄CPython內(nèi)置函數(shù)312
附錄D國家計算機二級等級考試(Python)考試知識點介紹(2025版)312
參考文獻/313