本書以零基礎(chǔ)為起點(diǎn)介紹Python程序設(shè)計(jì)方法。各章內(nèi)容由淺入深、相互銜接、前后呼應(yīng)、循序漸進(jìn)。本書一方面?zhèn)戎鼗A(chǔ)知識的講解,另一方面?zhèn)戎乩肞ython進(jìn)行數(shù)據(jù)處理的方法和應(yīng)用。全書各章節(jié)選用豐富的程序設(shè)計(jì)語言經(jīng)典實(shí)例來講解基本概念和程序設(shè)計(jì)方法,同時(shí)配有大量習(xí)題上機(jī)實(shí)踐題供讀者練習(xí)。全書共13章,分為基礎(chǔ)篇、高級篇和應(yīng)用篇三部分,基礎(chǔ)篇第1章進(jìn)入Python的世界;第2章介紹Python基礎(chǔ)知識;第3章介紹Python流程控制;第4章介紹常用數(shù)據(jù)結(jié)構(gòu);第5章介紹函數(shù)與模塊;第6章介紹類與對象:第7章介紹類的重用;第8章介紹異常處理;高級篇第9章介紹文件與數(shù)據(jù)庫;第10章介紹Python數(shù)據(jù)處理;第11章介紹Python數(shù)據(jù)可視化;第12章介紹Python數(shù)據(jù)分析;應(yīng)用篇第13章介紹應(yīng)用案例--圖書館大數(shù)據(jù)分析。本書中的代碼均在Python 3.6測試通過。本書語言表達(dá)簡潔、嚴(yán)謹(jǐn)、流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語言課程的教材,也可以作為非計(jì)算機(jī)專業(yè)公共基礎(chǔ)課教材或Python愛好者的參考書。
本書語言表達(dá)簡潔、嚴(yán)謹(jǐn)、流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語言課程的教材,也可以作為非計(jì)算機(jī)專業(yè)公共基礎(chǔ)課教材或Python愛好者的參考書。
Python是一門非常容易入門,并且功能非常強(qiáng)大的編程語言。Python也是免費(fèi)、開源的跨平臺編程語言,支持命令式和函數(shù)式編程。它支持完全面向?qū)ο蟮某绦蛟O(shè)計(jì)。一方面,由于其簡單的語法,很容易上手,因此Python語言擁有各行各業(yè)的眾多使用者,同時(shí)使用者提供各種強(qiáng)大的標(biāo)準(zhǔn)庫、擴(kuò)展庫等。另一方面,Python還是一門近乎全能的編程語言,比如,我們可以使用用Python進(jìn)行數(shù)據(jù)采集,也可以使用Python進(jìn)行Web開發(fā),還可以使用Python進(jìn)行數(shù)據(jù)分析與挖掘等。近年來,Python程序設(shè)計(jì)語言受到了企業(yè)界、科研單位和教育機(jī)構(gòu)的廣泛重視。
國外很多著名高校的計(jì)算機(jī)或非計(jì)算機(jī)專業(yè)已經(jīng)將Python作為程序設(shè)計(jì)入門課程。國內(nèi)的高校也紛紛開設(shè)相關(guān)課程。尤其是隨著計(jì)算思維和大數(shù)據(jù)概念的普及,Python程序設(shè)計(jì)在高校中的教學(xué)開始全面展開。大數(shù)據(jù)時(shí)代的學(xué)生需要掌握數(shù)據(jù)處理的基本技術(shù)。Python簡單易學(xué),具有強(qiáng)大的數(shù)據(jù)處理能力,并且是一門通用的程序設(shè)計(jì)語言。因此,Python程序設(shè)計(jì)語言既適合作為程序設(shè)計(jì)的人門課程,也適合作為非計(jì)算機(jī)專業(yè)學(xué)生用來解決數(shù)據(jù)分析等各種問題的通用工具。
本書由工作在教學(xué)第1線的高校教師編寫完成。作為一本介紹Python基礎(chǔ)知識與應(yīng)用的教材,本書內(nèi)容簡單易懂、層次脈絡(luò)清所、難度適中,內(nèi)容、案例、難點(diǎn)安排恰當(dāng),非常適合教學(xué)。
本書共13章,分為基礎(chǔ)篇、高級篇和應(yīng)用篇三部分,主要內(nèi)容及編寫分工如下:
基礎(chǔ)篇第1章進(jìn)入Python的世界由伏玉琛負(fù)責(zé)編寫,主要介紹Python的特點(diǎn)、語法、下載與安裝方法、使用方式、集成開發(fā)環(huán)境等。
第2章Python基礎(chǔ)由伏玉琛負(fù)責(zé)編寫,主要介紹Python語言的基礎(chǔ)知識,包括數(shù)據(jù)類型、標(biāo)識符、常量與變量和運(yùn)算符等。
第3章流程控制由伏玉琛負(fù)責(zé)編寫,主要介紹程序流程控制,包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等。
第4章常用數(shù)據(jù)結(jié)構(gòu)由伏玉琛負(fù)責(zé)編寫,主要介紹Python中的常用數(shù)據(jù)結(jié)構(gòu),包括序列、字典、集合等數(shù)據(jù)結(jié)構(gòu)。
第5章函數(shù)和模塊由楊永負(fù)責(zé)編寫,主要介紹函數(shù)的定義和調(diào)用、形參與實(shí)參、函數(shù)的返回、位置參數(shù)、默認(rèn)參數(shù)、關(guān)鍵參數(shù)、可變長度參數(shù)、序列作為參數(shù)、基于函數(shù)的抽象與求精思想、遞歸思想等。
第6章類與對象由楊永負(fù)責(zé)編寫,主要介紹Python的對象與方法、類的定義、類的屬性、構(gòu)造函數(shù)和析構(gòu)構(gòu)函數(shù)等。
第7章類的重用由楊永負(fù)責(zé)編寫,主要介紹類的繼承與組合兩種重用方式。
第8章異常處理由楊永負(fù)責(zé)編寫,主要介紹Python中的異常、異常類、異常的捕獲與處理、自定義異常類、with語句與斷言等。
高級篇第9章文件與數(shù)據(jù)庫由楊永和劉志剛負(fù)責(zé)編寫,其中9.1文件由楊永編寫,9.2數(shù)據(jù)庫由劉志剛編寫。主要介紹文件的打開與關(guān)閉、文件指針、文件讀寫、數(shù)據(jù)庫基礎(chǔ)、數(shù)據(jù)庫訪問、數(shù)據(jù)庫建立等。
第10章數(shù)據(jù)處理由劉志剛負(fù)責(zé)編寫,主要介紹Numpy和Pandas兩大模塊數(shù)據(jù)處理,包括常用的數(shù)據(jù)運(yùn)算、操作等。
第11章數(shù)據(jù)可視化由劉志剛負(fù)責(zé)編寫,主要介紹Matlotlib和Pandas的常見圖形繪制方法。
第12章數(shù)據(jù)分析由劉志剛負(fù)責(zé)編寫,主要介紹利用Python數(shù)據(jù)分析解決人工智能中的一些常用算法,包括數(shù)據(jù)分類、聚類、預(yù)測等分析算法。
應(yīng)用篇第13章應(yīng)用案例--圖書館大數(shù)據(jù)分析由文必龍負(fù)責(zé)編寫,主要通過對圖書館借閱數(shù)據(jù)進(jìn)行分析,介紹在實(shí)際應(yīng)用中開展大數(shù)據(jù)分析的基本過程,逐步實(shí)現(xiàn)需求分析、數(shù)據(jù)理解、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化等全部過程。
本書語言表達(dá)簡潔、嚴(yán)謹(jǐn)、流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語言課程的教材,也可以作為非計(jì)算機(jī)專業(yè)公共基礎(chǔ)課教材或Python愛好者的參考書。
本書提供全套教學(xué)課件和源代碼,本書中的代碼均在Python 3.6測試通過。
由于時(shí)間倉促,作者水平有限,書中難免出現(xiàn)紕漏,不足之處敬請批評指正,并反饋給我們。
第1章
進(jìn)入Python的世界 1
1.1 Python簡介 1
1.1.1 Python語言的誕生 1
1.1.2 Python的設(shè)計(jì)風(fēng)格 1
1.1.3 Python語言的發(fā)展簡史 2
1.2 Python語言特性 3
1.2.1 Python語言的優(yōu)點(diǎn) 3
1.2.1 Python語言的缺點(diǎn) 4
1.4 第一個(gè)Python程序 4
1.4.1 搭建開發(fā)環(huán)境 4
1.4.1 使用解釋器提示符 6
1.4.3 Hello World第一個(gè)Python程序 7
1.5 Python編程規(guī)范 9
1.5.1 代碼編排 9
1.5.2 空格的使用 11
1.5.3 注釋 13
1.5.4 命名規(guī)范 14
1.5.5 編碼建議 18
1.6 本章小結(jié) 20
1.7 習(xí)題 21
第2章 Python基礎(chǔ) 22
2.1 Python基本數(shù)據(jù)類型 22
2.1.1 Number(數(shù)字) 22
2.1.2 str(字符串) 23
2.1.3 list(列表) 24
2.1.4 Tuple(元組) 24
2.1.5 set(集合) 24
2.1.6 Dictionary(字典) 25
2.2 常量與變量 25
2.1.1 變量 25
2.1.2 常量 26
2.1.3 input()與print() 27
2.3 運(yùn)算符 29
2.3.1 算術(shù)運(yùn)算符 29
2.3.2 比較運(yùn)算符 32
2.3.3 賦值運(yùn)算符 34
2.3.4 位運(yùn)算符 36
2.3.5 邏輯運(yùn)算符 38
2.3.6 運(yùn)算符優(yōu)先級 39
2.4類型轉(zhuǎn)換 40
2.5 本章小結(jié) 42
2.6 習(xí)題 42
第3章
流程控制 43
3.1 程序的基本結(jié)構(gòu) 43
3.1.1 順序結(jié)構(gòu) 43
3.1.2 分支結(jié)構(gòu) 43
3.1.3 循環(huán)結(jié)構(gòu) 43
3.2 程序流程圖 44
3.2.1 傳統(tǒng)流程圖 44
3.2.2 結(jié)構(gòu)流程圖 46
3.2 程序的分支結(jié)構(gòu) 47
3.2.1 單分支結(jié)構(gòu)if語句 47
3.2.2 雙分支結(jié)構(gòu)if-else語句 48
3.2.3 多分支結(jié)構(gòu)if-elif-else語句 49
3.2.4 分支結(jié)構(gòu)的嵌套 51
3.3 程序的循環(huán)結(jié)構(gòu) 53
3.3.1 for語句 53
3.3.2 while語句 54
3.3.3 break語句與continue語句 55
3.3.4 循環(huán)的嵌套 57
3.4 本章小結(jié) 58
3.5 習(xí)題 58
第4章
常用數(shù)據(jù)結(jié)構(gòu) 59
4.1 概述 59
4.2 序列 60
4.2.1 列表 60
4.2.2 元組 64
4.2.3 字符串 65
4.3 字典 72
4.3.1 創(chuàng)建字典 72
4.3.2 字典操作 73
4.3.3 字典方法 73
4.4 集合 75
4.4.1 集合的創(chuàng)建 75
4.4.2 集合的操作 75
4.4.3 集合相等性測試及子集和超集 76
4.4.4 集合運(yùn)算 77
4.5 本章小結(jié) 77
4.6 習(xí)題 78
第5章
函數(shù)與模塊 79
5.1 函數(shù) 79
5.1.1 函數(shù)的定義 79
5.1.2 函數(shù)的調(diào)用 80
5.1.3 函數(shù)的返回值 82
5.1.4 函數(shù)的參數(shù) 83
5.1.5 匿名函數(shù) 87
5.1.6 函數(shù)的嵌套調(diào)用 88
5.1.7 函數(shù)的嵌套定義 89
5.1.8 函數(shù)的遞歸調(diào)用 89
5.1.9 變量的作用域 92
5.2 常用內(nèi)置函數(shù) 96
5.2.1 數(shù)學(xué)運(yùn)算函數(shù) 96
5.2.2 類型轉(zhuǎn)換函數(shù) 96
5.2.3 序列操作函數(shù) 97
5.2.4 其它函數(shù) 98
5.3 模塊和包 99
5.3.1 命名空間 99
5.3.2 模塊 102
5.3.3 包 107
5.4 本章小結(jié) 109
5.5 習(xí)題 110
第6章
類與對象 113
6.1 面向?qū)ο蟪绦蛟O(shè)計(jì)概述 113
6.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)思想 113
6.1.2 面向?qū)ο笾械幕靖拍?114
6.1.3 面向?qū)ο蟮幕咎卣?114
6.2類 115
6.3對象 116
6.4類的屬性與方法 117
6.4.1類的屬性 117
6.4.2構(gòu)造方法和析構(gòu)方法 119
6.5本章小結(jié) 121
6.6習(xí)題 121
第7章
類的重用 124
7.1繼承 124
7.1.1父類與子類 124
7.1.2繼承 125
7.1.3繼承關(guān)系下的構(gòu)造方法 127
7.2多繼承 129
7.3組合 131
7.4本章小結(jié) 133
7.5習(xí)題 133
第8章
異常處理 135
8.1異常處理 135
8.1.1標(biāo)準(zhǔn)異常處理 135
8.1.2 try...except語句 137
8.1.3捕獲多種異常 138
8.1.4 try…finally語句 139
8.1.5 自定義異常 140
8.2斷言與上下文管理 141
8.2.1 斷言 142
8.2.2 上下文管理 142
8.3 本章小結(jié) 143
8.4 習(xí)題 144
第9章
文件和數(shù)據(jù)庫 145
9.1 文件 145
9.1.1 文件概述 145
9.1.2 文件的打開與關(guān)閉 146
9.1.3 文件的讀寫 147
9.1.4 隨機(jī)文件訪問 158
9.1.5 CSV文件的讀取與寫入 159
9.1.6與文件相關(guān)的模塊 161
9.2 數(shù)據(jù)庫 164
9.2.1 數(shù)據(jù)庫基礎(chǔ) 164
9.2.2 數(shù)據(jù)庫訪問模塊 165
9.2.3 SQLite數(shù)據(jù)庫 166
9.2.5 訪問數(shù)據(jù)庫的基本步驟 167
9.2.6 創(chuàng)建數(shù)據(jù)庫和表 168
9.2.7 數(shù)據(jù)庫的插入、更新和刪除操作 169
9.2.7 數(shù)據(jù)庫表的查詢操作 170
9.3 本章小結(jié) 170
9.4 習(xí)題 171
第10章
數(shù)據(jù)處理 173
10.1 Numpy使用 173
10.1.1 概述 173
10.1.2 Numpy數(shù)組的創(chuàng)建 174
10.1.3 Numpy數(shù)組的索引和切片 179
10.1.4 Numpy數(shù)組的運(yùn)算 183
10.1.5 Numpy數(shù)組的通用函數(shù) 185
10.2 Pandas使用 192
10.2.1 概述 192
10.2.2 Pandas的Series對象 193
10.2.3 Pandas的DataFrame對象 195
10.2.4 Pandas的基本操作 199
10.2.5 Pandas的數(shù)值運(yùn)算 206
10.2.6 Pandas的文件操作 208
10.2.7 Pandas的缺失值處理 211
10.3 本章小結(jié) 212
10.4 習(xí)題 213
第11章
數(shù)據(jù)可視化 215
11.1 Matplotlib簡介 215
11.2 Matplotlib快速入門 216
11.3 Matplotlib繪圖函數(shù) 219
11.3.1 柱狀圖 219
11.3.2 散點(diǎn)圖 221
11.3.3 子圖 223
11.3.4 等值線圖 224
11.3.5 三維圖 225
11.3.6 圖像 226
11.4 Matplotlib面向?qū)ο蠓绞嚼L圖 227
11.4.1 面向?qū)ο罄L圖 227
11.4.2 配置屬性 228
11.5 Pandas繪圖 229
11.5.1 折線圖 229
11.5.2 條形圖 230
11.5.3 直方圖 232
11.6 本章小結(jié) 233
11.7 習(xí)題 234
第12章
數(shù)據(jù)分析 236
12.1 概述 236
12.2 決策樹 237
12.2.1 概述 237
12.2.2 ID3原理簡介 239
12.2.3 應(yīng)用案例 240
12.3 人工神經(jīng)網(wǎng)絡(luò) 247
12.3.1 概述 247
12.3.2 感知機(jī)模型 248
12.3.3 誤差反向傳播算法 250
12.3.4 應(yīng)用案例 251
12.4 K-近鄰分類 254
12.4.1 概述 254
12.4.2 KNN原理簡介 254
12.4.3 KNN算法流程 255
12.4.4 應(yīng)用案例 256
12.5 K-Means聚類 259
12.5.1 概述 259
12.5.2 K-Means原理簡介 260
12.5.3 K-Means算法流程 260
12.5.4 應(yīng)用案例 261
12.6 本章小結(jié) 265
12.7 習(xí)題 265
第13章
應(yīng)用案例--圖書館大數(shù)據(jù)分析 268
13.1 案例背景 268
13.1.1圖書館大數(shù)據(jù)分析的需求 268
13.1.2 分析步驟 269
13.2 數(shù)據(jù)探索 271
13.2.1 數(shù)據(jù)結(jié)構(gòu) 271
13.2.2 初步了解數(shù)據(jù) 273
13.2.3 數(shù)據(jù)預(yù)處理 274
13.2.4 試分析 275
13.3 數(shù)據(jù)分析 276
13.3.1 分析思路 276
13.3.1 主題詞提取 277
13.3.2 熱門書籍分析 283
13.4 數(shù)據(jù)可視化 284
13.4.1 熱門書詞云 285
13.4.2 熱門書排名對比 287
13.5本章小結(jié) 289
13.6 習(xí)題 290