Python作為編程語言的一種,具有高效率、可移植、可擴展、可嵌入、易于維護等優(yōu)點;Python語法簡潔,代碼高度規(guī)范,功能強大且簡單易學,是程序開發(fā)人員必學的語言之一。 本書注重基礎、循序漸進,內容豐富、結構合理、思路清晰、語言簡練流暢、示例豐富,系統(tǒng)地講述了Python程序設計開發(fā)相關基礎知識。本書分為12章,主要包括Python與編程環(huán)境、Python語法基礎、程序基本流程控制、典型序列數(shù)據結構、函數(shù)與函數(shù)式編程、面向對象編程基礎、Python文件操作、使用模塊與庫編程、NumPy數(shù)值計算、Pandas數(shù)據處理分析、Matplotlib庫與數(shù)據可視化、學生成績數(shù)據處理與分析實戰(zhàn)等內容。 為提升學習效果,書中結合實際應用提供了大量案例進行說明和訓練,并配以完善的學習資料和支持服務,包括教學PPT、教學大綱、微視頻等,為讀者帶來全方位的學習體驗。 本書既可作為高等院校計算機程序設計或通識類課程教材,也可作為自學者使用的輔助教材,是一本適用于程序開發(fā)初學者的入門級教材。
本書既可作為高等院校計算機通識類課程教材,也可作為自學者使用的輔助教材,是一本適用于程序開發(fā)初學者的入門級教材。
Python語言于20世紀90年代初由荷蘭人Guido van Rossum首次公開發(fā)布,經過歷次版本的修正,不斷演化改進,目前已成為最受歡迎的程序設計語言之一。近年來,Python多次登上諸如TIOBE、PYP、StackOverFlow、GitHub、Indeed、Glassdoor等各大編程語言社區(qū)排行榜。根據TIOBE最新排名,Python與Java、C語言排在全球流行語言的前三位。
Python語言之所以如此受歡迎,其主要原因是它擁有簡潔的語法、良好的可讀性以及功能的可擴展性。在各高校及行業(yè)應用中,采用Python作為教學、科研、應用開發(fā)的機構日益增多。在高校,一些國際知名大學采用Python語言來教授課程設計,典型的有美國麻省理工學院的計算機科學及編程導論、卡內基梅隆大學的編程基礎、加州大學伯克利分校的人工智能等課程。在行業(yè)應用方面,Python已經滲透數(shù)據分析、互聯(lián)網開發(fā)、工業(yè)智能化、游戲開發(fā)等重要的工業(yè)應用領域。
本書是2021年北京紅亞華宇科技有限公司支持的教育產學合作協(xié)同育人項目基于新工科的數(shù)據分析及可視化課程資源研發(fā)項目成果,按以下3個原則進行編寫:
(1)適應原則。Python語言具有自己獨特的語法。本書以程序開發(fā)者的角度,在編程語言的大框架下,分析編程語言的細節(jié)差異,讀者能夠很好地適應Python的學習。
(2)科學原則。本書既是知識產品的再生產、再創(chuàng)造,也是編者教學經驗的總結和提高。其覆蓋范圍廣、內容新,既有面的鋪開,又有點的深化,舉例符合題意,讀者學習起來事半功倍。
(3)實用原則。本書融合了計算機程序設計與數(shù)據分析的教學內容,并以數(shù)據分析應用為目的,旨在通過編程語言的學習和應用,培養(yǎng)學生的基本編程能力和計算思維,通過數(shù)據分析方法的學習和應用,培養(yǎng)學生的基本數(shù)據分析能力。
本書從基礎和實踐兩個層面引導讀者學習Python,系統(tǒng)、全面地討論Python編程的思想和方法。第1~3章主要介紹Python的基本知識和理論基礎。第4~8章詳細介紹Python編程的核心技術,著眼于控制語句與函數(shù)、模塊、包以及庫的使用、類和繼承、文件操作和數(shù)據處理的重點知識使用場景以及注意事項的描述,每章節(jié)都給出了詳細的Python示例程序,讓讀者全面理解Python編程。其中第6章是程序開發(fā)的進階,著重介紹了類、對象、屬性、方法、繼承等知識點,并針對每個知識點給出了詳細的示例。第9~11章涵蓋從數(shù)據的科學計算、數(shù)據處理分析到數(shù)據可視化。第12章通過從Python編程到Pandas庫,對學生成績數(shù)據進行處理與分析實戰(zhàn),有利于讀者對數(shù)據處理與分析知識的應用。本書可以讓讀者在學習Python基礎知識的同時,也能夠掌握數(shù)據的分析與可視化知識。
本書的參考課時為32~48學時,可作為高等院校計算機程序設計或通識類課程教材,也適合從事相關工作的人員閱讀。
本書由李輝、金曉萍、李麗芬主編。在編寫過程中,張標、孫鑫鑫、朱玲、王靜、楊建平、程新榮、白玉艷、代愛妮、王美麗、賀細平、張晶、王傳安等老師提供了寶貴的修改意見和建議,在此表示感謝。
由于編者水平有限,加之Python語言的發(fā)展日新月異,書中難免會有疏漏和不妥之處,敬請廣大讀者批評指正。
編者
2023年2月
第1章Python與編程環(huán)境/1
1.1計算機程序與編程語言1
1.1.1計算機程序1
1.1.2計算機編程語言1
1.1.3計算機編程語言編譯和解釋2
1.2Python語言概述2
1.2.1Python的起源與發(fā)展2
1.2.2Python的特點3
1.2.3Python的應用領域與發(fā)展趨勢3
1.3Python與PyCharm的安裝及其配置4
1.3.1Python語言的解釋器4
1.3.2Python 3.9.0的下載與安裝5
1.3.3Python開發(fā)環(huán)境IDLE及其使用8
1.3.4Python集成開發(fā)環(huán)境PyCharm的安裝與配置10
本章小結19
思考與練習19
第2章Python語法基礎/21
2.1編碼規(guī)范21
2.2標識符與保留字22
2.2.1標識符22
2.2.2保留字23
2.3變量和賦值23
2.3.1變量的定義23
2.3.2變量的命名24
2.3.3變量值的存儲25
2.4數(shù)據類型26
2.4.1常見的數(shù)據類型26
2.4.2數(shù)據類型的判斷方法28
2.4.3數(shù)據類型轉換292.5基本輸入與輸出30
2.5.1input()函數(shù)30
2.5.2print()函數(shù)31
2.5.3字符串的格式化輸出32
2.6運算符和表達式35
2.6.1運算符35
2.6.2表達式36
本章小結38
思考與練習38
〖1〗Python程序設計與數(shù)據分析基礎目錄〖3〗〖3〗第3章程序基本流程控制/40
3.1選擇結構語句40
3.1.1單分支結構40
3.1.2雙分支結構41
3.1.3多分支結構42
3.1.4嵌套分支結構43
3.2循環(huán)結構語句44
3.2.1while循環(huán)44
3.2.2for循環(huán)45
3.2.3循環(huán)嵌套46
3.3break、continue與else語句48
3.4pass語句51
3.5程序的錯誤與異常處理51
3.5.1程序的錯誤與處理51
3.5.2程序的異常與處理52
本章小結53
思考與練習54
第4章典型序列數(shù)據結構/56
4.1序列56
4.1.1序列概述56
4.1.2序列的基本操作56
4.2列表的創(chuàng)建與操作62
4.2.1創(chuàng)建列表63
4.2.2獲取列表元素64
4.2.3常用的列表操作方法64
4.3元組的創(chuàng)建與操作67
4.3.1創(chuàng)建元組68
4.3.2獲取元組元素69
4.3.3元組操作69
4.4字典的創(chuàng)建與操作70
4.4.1創(chuàng)建字典71
4.4.2獲取元素72
4.5集合的創(chuàng)建與操作74
4.5.1創(chuàng)建集合75
4.5.2集合操作75
4.6推導式與生成器推導式76
4.6.1列表推導式76
4.6.2字典推導式78
4.6.3集合推導式80
4.6.4元組的生成器推導式80
4.7數(shù)據結構的判斷與轉換81
4.7.1列表和元組轉換81
4.7.2列表、元組和集合的轉換82
4.8字符串操作與正則表達式應用82
4.8.1字符串的常見操作82
4.8.2正則表達式處理字符串的步驟84
4.8.3Python支持的正則表達式語法85
4.8.4使用正則表達式處理字符串87
本章小結92
思考與練習92
第5章函數(shù)與函數(shù)式編程/95
5.1內置函數(shù)95
5.2自定義函數(shù)與調用95
5.2.1函數(shù)的定義96
5.2.2函數(shù)的調用96
5.2.3函數(shù)的返回值96
5.3函數(shù)參數(shù)的傳遞97
5.3.1固定參數(shù)傳遞98
5.3.2默認參數(shù)傳遞98
5.3.3未知參數(shù)個數(shù)傳遞99
5.3.4關鍵字參數(shù)傳遞100
5.4變量的作用域101
5.4.1局部變量101
5.4.2全局變量101
5.5函數(shù)的遞歸與嵌套102
5.5.1函數(shù)的遞歸函數(shù)102
5.5.2函數(shù)的嵌套104
5.6函數(shù)式編程104
5.6.1lambda匿名函數(shù)104
5.6.2map()函數(shù)106
5.6.3reduce()函數(shù)107
5.6.4filter()函數(shù)108
5.6.5zip()函數(shù)108
本章小結109
思考與練習110
第6章面向對象編程基礎/111
6.1類和對象111
6.2類的定義和實例化111
6.2.1類的定義112
6.2.2類的實例化112
6.3實例與類的對象屬性113
6.3.1實例對象屬性113
6.3.2類對象屬性114
6.3.3類對象屬性與實例對象屬性的區(qū)別與聯(lián)系115
6.4成員屬性與成員方法116
6.4.1成員屬性116
6.4.2成員方法118
6.5類的繼承與多態(tài)122
6.5.1類的繼承與多重繼承122
6.5.2多態(tài)與多態(tài)性125
本章小結127
思考與練習127
第7章Python文件操作/129
7.1文件與文件操作129
7.1.1文件數(shù)據的組織形式129
7.1.2文件的操作方法130
7.2CSV文件讀取與寫入操作133
7.2.1讀取CSV文件133
7.2.2CSV文件的寫入與關閉134
7.3文件操作的應用135
7.3.1數(shù)據的維度135
7.3.2一維數(shù)據和二維數(shù)據的讀寫135
本章小結137
思考與練習138
第8章使用模塊與庫編程/139
8.1模塊的使用與創(chuàng)建139
8.1.1模塊概述139
8.1.2模塊的導入140
8.1.3模塊自定義與使用141
8.2包的創(chuàng)建與使用143
8.2.1創(chuàng)建包143
8.2.2使用包143
8.3常見標準庫的使用145
8.3.1turtle庫的使用145
8.3.2random庫的使用148
8.3.3時間和日期庫的使用151
8.4常見的第三方庫154
8.4.1第三方庫的安裝155
8.4.2中文處理相關庫157
8.4.3網絡爬蟲相關庫161
8.4.4其他第三方庫簡介166
本章小結171
思考與練習172
第9章NumPy數(shù)值計算/173
9.1數(shù)組的創(chuàng)建與訪問173
9.1.1創(chuàng)建數(shù)組173
9.1.2查看數(shù)組屬性177
9.1.3訪問數(shù)組178
9.1.4修改數(shù)組181
9.2數(shù)組的運算184
9.2.1數(shù)組的轉置184
9.2.2數(shù)組的算術運算184
9.2.3數(shù)組的布爾運算188
9.2.4數(shù)組的點積運算189
9.2.5數(shù)組的統(tǒng)計運算189
9.3數(shù)組的操作191
9.3.1數(shù)組的排序191
9.3.2數(shù)組的合并193
本章小結195
思考與練習195
第10章Pandas數(shù)據處理分析/196
10.1Pandas基本數(shù)據結構196
10.1.1Series數(shù)據結構定義與操作196
10.1.2DataFrame數(shù)據結構定義與操作200
10.1.3訪問DataFrame數(shù)據元素203
10.1.4修改與刪除DataFrame數(shù)據元素206
10.1.5DataFrame數(shù)據元素的排序209
10.2數(shù)據分析的基本流程212
10.3數(shù)據的導入與導出213
10.3.1數(shù)據的導入213
10.3.2數(shù)據的導出216
10.4數(shù)據預處理217
10.4.1缺失值處理218
10.4.2異常值處理221
10.4.3重復值處理222
10.4.4其他處理224
10.5數(shù)據分析方法227
10.5.1基本統(tǒng)計分析227
10.5.2分組分析229
10.5.3分布分析231
10.5.4交叉分析233
10.5.5結構分析234
10.5.6相關分析235
10.6DataFrame對象的合并與連接236
10.6.1DataFrame對象的合并236
10.6.2DataFrame對象的連接236
本章小結238
思考與練習238
第11章Matplotlib庫與數(shù)據可視化/240
11.1數(shù)據可視化概述240
11.1.1常見的數(shù)據可視化圖表類型240
11.1.2數(shù)據可視化圖表的基本構成244
11.1.3數(shù)據可視化方式選擇依據246
11.1.4常見的數(shù)據可視化庫246
11.2Matplotlib庫的概述247
11.2.1Matplotlib庫的導入與設置247
11.2.2Matplotlib庫繪圖的層次結構248
11.3Matplotlib庫繪圖的基本流程249
11.3.1創(chuàng)建簡單圖表的基本流程249
11.3.2繪制子圖的基本流程251
11.4使用Matplotlib庫繪制常用圖表253
11.4.1繪制直方圖253
11.4.2繪制散點圖254
11.4.3繪制柱形圖256
11.4.4繪制折線圖257
11.4.5繪制餅圖259
11.4.6繪制面積圖263
11.4.7繪制熱力圖264
11.4.8繪制箱形圖265
11.4.9繪制雷達圖269
11.4.10繪制3D圖270
11.5圖表輔助元素的設置273
11.5.1設置坐標軸的標簽、刻度范圍和刻度標簽273
11.5.2添加標題和圖例275
11.5.3顯示網格276
11.5.4添加參考線和參考區(qū)域277
11.5.5添加注釋文本278
11.5.6添加表格279
11.5.7圖表輔助元素設置綜合應用280
本章小結283
思考與練習283
第12章學生成績數(shù)據處理與分析實戰(zhàn)/285
12.1數(shù)據集準備285
12.2編程實現(xiàn)數(shù)據處理分析285
12.2.1數(shù)據探索285
12.2.2處理數(shù)據286
12.3Pandas庫實現(xiàn)成績數(shù)據處理與分析287
12.3.1數(shù)據探索287
12.3.2數(shù)據預處理290
12.3.3數(shù)據選取293
12.3.4數(shù)據分析295
12.3.5數(shù)據可視化297
12.3.6數(shù)據輸出298
本章小結298
思考與練習298
參考文獻/299