本書(shū)以零基礎(chǔ)為起點(diǎn)介紹Python程序設(shè)計(jì)方法。各章內(nèi)容由淺入深、相互銜接、前后呼應(yīng)、循序漸進(jìn)。本書(shū)一方面?zhèn)戎鼗A(chǔ)知識(shí)的講解,另一方面?zhèn)戎乩肞ython進(jìn)行數(shù)據(jù)處理的方法和應(yīng)用。全書(shū)各章節(jié)選用豐富的程序設(shè)計(jì)語(yǔ)言經(jīng)典實(shí)例來(lái)講解基本概念和程序設(shè)計(jì)方法,同時(shí)配有大量習(xí)題上機(jī)實(shí)踐題供讀者練習(xí)。全書(shū)共13章,分為基礎(chǔ)篇、高級(jí)篇和應(yīng)用篇三部分,基礎(chǔ)篇第1章進(jìn)入Python的世界;第2章介紹Python基礎(chǔ)知識(shí);第3章介紹Python流程控制;第4章介紹常用數(shù)據(jù)結(jié)構(gòu);第5章介紹函數(shù)與模塊;第6章介紹類與對(duì)象:第7章介紹類的重用;第8章介紹異常處理;高級(jí)篇第9章介紹文件與數(shù)據(jù)庫(kù);第10章介紹Python數(shù)據(jù)處理;第11章介紹Python數(shù)據(jù)可視化;第12章介紹Python數(shù)據(jù)分析;應(yīng)用篇第13章介紹應(yīng)用案例--圖書(shū)館大數(shù)據(jù)分析。本書(shū)中的代碼均在Python 3.6測(cè)試通過(guò)。本書(shū)語(yǔ)言表達(dá)簡(jiǎn)潔、嚴(yán)謹(jǐn)、流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語(yǔ)言課程的教材,也可以作為非計(jì)算機(jī)專業(yè)公共基礎(chǔ)課教材或Python愛(ài)好者的參考書(shū)。
本書(shū)語(yǔ)言表達(dá)簡(jiǎn)潔、嚴(yán)謹(jǐn)、流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語(yǔ)言課程的教材,也可以作為非計(jì)算機(jī)專業(yè)公共基礎(chǔ)課教材或Python愛(ài)好者的參考書(shū)。
Python是一門(mén)非常容易入門(mén),并且功能非常強(qiáng)大的編程語(yǔ)言。Python也是免費(fèi)、開(kāi)源的跨平臺(tái)編程語(yǔ)言,支持命令式和函數(shù)式編程。它支持完全面向?qū)ο蟮某绦蛟O(shè)計(jì)。一方面,由于其簡(jiǎn)單的語(yǔ)法,很容易上手,因此Python語(yǔ)言擁有各行各業(yè)的眾多使用者,同時(shí)使用者提供各種強(qiáng)大的標(biāo)準(zhǔn)庫(kù)、擴(kuò)展庫(kù)等。另一方面,Python還是一門(mén)近乎全能的編程語(yǔ)言,比如,我們可以使用用Python進(jìn)行數(shù)據(jù)采集,也可以使用Python進(jìn)行Web開(kāi)發(fā),還可以使用Python進(jìn)行數(shù)據(jù)分析與挖掘等。近年來(lái),Python程序設(shè)計(jì)語(yǔ)言受到了企業(yè)界、科研單位和教育機(jī)構(gòu)的廣泛重視。
國(guó)外很多著名高校的計(jì)算機(jī)或非計(jì)算機(jī)專業(yè)已經(jīng)將Python作為程序設(shè)計(jì)入門(mén)課程。國(guó)內(nèi)的高校也紛紛開(kāi)設(shè)相關(guān)課程。尤其是隨著計(jì)算思維和大數(shù)據(jù)概念的普及,Python程序設(shè)計(jì)在高校中的教學(xué)開(kāi)始全面展開(kāi)。大數(shù)據(jù)時(shí)代的學(xué)生需要掌握數(shù)據(jù)處理的基本技術(shù)。Python簡(jiǎn)單易學(xué),具有強(qiáng)大的數(shù)據(jù)處理能力,并且是一門(mén)通用的程序設(shè)計(jì)語(yǔ)言。因此,Python程序設(shè)計(jì)語(yǔ)言既適合作為程序設(shè)計(jì)的人門(mén)課程,也適合作為非計(jì)算機(jī)專業(yè)學(xué)生用來(lái)解決數(shù)據(jù)分析等各種問(wèn)題的通用工具。
本書(shū)由工作在教學(xué)第1線的高校教師編寫(xiě)完成。作為一本介紹Python基礎(chǔ)知識(shí)與應(yīng)用的教材,本書(shū)內(nèi)容簡(jiǎn)單易懂、層次脈絡(luò)清所、難度適中,內(nèi)容、案例、難點(diǎn)安排恰當(dāng),非常適合教學(xué)。
本書(shū)共13章,分為基礎(chǔ)篇、高級(jí)篇和應(yīng)用篇三部分,主要內(nèi)容及編寫(xiě)分工如下:
基礎(chǔ)篇第1章進(jìn)入Python的世界由伏玉琛負(fù)責(zé)編寫(xiě),主要介紹Python的特點(diǎn)、語(yǔ)法、下載與安裝方法、使用方式、集成開(kāi)發(fā)環(huán)境等。
第2章Python基礎(chǔ)由伏玉琛負(fù)責(zé)編寫(xiě),主要介紹Python語(yǔ)言的基礎(chǔ)知識(shí),包括數(shù)據(jù)類型、標(biāo)識(shí)符、常量與變量和運(yùn)算符等。
第3章流程控制由伏玉琛負(fù)責(zé)編寫(xiě),主要介紹程序流程控制,包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等。
第4章常用數(shù)據(jù)結(jié)構(gòu)由伏玉琛負(fù)責(zé)編寫(xiě),主要介紹Python中的常用數(shù)據(jù)結(jié)構(gòu),包括序列、字典、集合等數(shù)據(jù)結(jié)構(gòu)。
第5章函數(shù)和模塊由楊永負(fù)責(zé)編寫(xiě),主要介紹函數(shù)的定義和調(diào)用、形參與實(shí)參、函數(shù)的返回、位置參數(shù)、默認(rèn)參數(shù)、關(guān)鍵參數(shù)、可變長(zhǎng)度參數(shù)、序列作為參數(shù)、基于函數(shù)的抽象與求精思想、遞歸思想等。
第6章類與對(duì)象由楊永負(fù)責(zé)編寫(xiě),主要介紹Python的對(duì)象與方法、類的定義、類的屬性、構(gòu)造函數(shù)和析構(gòu)構(gòu)函數(shù)等。
第7章類的重用由楊永負(fù)責(zé)編寫(xiě),主要介紹類的繼承與組合兩種重用方式。
第8章異常處理由楊永負(fù)責(zé)編寫(xiě),主要介紹Python中的異常、異常類、異常的捕獲與處理、自定義異常類、with語(yǔ)句與斷言等。
高級(jí)篇第9章文件與數(shù)據(jù)庫(kù)由楊永和劉志剛負(fù)責(zé)編寫(xiě),其中9.1文件由楊永編寫(xiě),9.2數(shù)據(jù)庫(kù)由劉志剛編寫(xiě)。主要介紹文件的打開(kāi)與關(guān)閉、文件指針、文件讀寫(xiě)、數(shù)據(jù)庫(kù)基礎(chǔ)、數(shù)據(jù)庫(kù)訪問(wèn)、數(shù)據(jù)庫(kù)建立等。
第10章數(shù)據(jù)處理由劉志剛負(fù)責(zé)編寫(xiě),主要介紹Numpy和Pandas兩大模塊數(shù)據(jù)處理,包括常用的數(shù)據(jù)運(yùn)算、操作等。
第11章數(shù)據(jù)可視化由劉志剛負(fù)責(zé)編寫(xiě),主要介紹Matlotlib和Pandas的常見(jiàn)圖形繪制方法。
第12章數(shù)據(jù)分析由劉志剛負(fù)責(zé)編寫(xiě),主要介紹利用Python數(shù)據(jù)分析解決人工智能中的一些常用算法,包括數(shù)據(jù)分類、聚類、預(yù)測(cè)等分析算法。
應(yīng)用篇第13章應(yīng)用案例--圖書(shū)館大數(shù)據(jù)分析由文必龍負(fù)責(zé)編寫(xiě),主要通過(guò)對(duì)圖書(shū)館借閱數(shù)據(jù)進(jìn)行分析,介紹在實(shí)際應(yīng)用中開(kāi)展大數(shù)據(jù)分析的基本過(guò)程,逐步實(shí)現(xiàn)需求分析、數(shù)據(jù)理解、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化等全部過(guò)程。
本書(shū)語(yǔ)言表達(dá)簡(jiǎn)潔、嚴(yán)謹(jǐn)、流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語(yǔ)言課程的教材,也可以作為非計(jì)算機(jī)專業(yè)公共基礎(chǔ)課教材或Python愛(ài)好者的參考書(shū)。
本書(shū)提供全套教學(xué)課件和源代碼,本書(shū)中的代碼均在Python 3.6測(cè)試通過(guò)。
由于時(shí)間倉(cāng)促,作者水平有限,書(shū)中難免出現(xiàn)紕漏,不足之處敬請(qǐng)批評(píng)指正,并反饋給我們。
第1章
進(jìn)入Python的世界 1
1.1 Python簡(jiǎn)介 1
1.1.1 Python語(yǔ)言的誕生 1
1.1.2 Python的設(shè)計(jì)風(fēng)格 1
1.1.3 Python語(yǔ)言的發(fā)展簡(jiǎn)史 2
1.2 Python語(yǔ)言特性 3
1.2.1 Python語(yǔ)言的優(yōu)點(diǎn) 3
1.2.1 Python語(yǔ)言的缺點(diǎn) 4
1.4 第一個(gè)Python程序 4
1.4.1 搭建開(kāi)發(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)先級(jí) 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語(yǔ)句 47
3.2.2 雙分支結(jié)構(gòu)if-else語(yǔ)句 48
3.2.3 多分支結(jié)構(gòu)if-elif-else語(yǔ)句 49
3.2.4 分支結(jié)構(gòu)的嵌套 51
3.3 程序的循環(huán)結(jié)構(gòu) 53
3.3.1 for語(yǔ)句 53
3.3.2 while語(yǔ)句 54
3.3.3 break語(yǔ)句與continue語(yǔ)句 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 集合相等性測(cè)試及子集和超集 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章
類與對(duì)象 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對(duì)象 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語(yǔ)句 137
8.1.3捕獲多種異常 138
8.1.4 try…finally語(yǔ)句 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ù)庫(kù) 145
9.1 文件 145
9.1.1 文件概述 145
9.1.2 文件的打開(kāi)與關(guān)閉 146
9.1.3 文件的讀寫(xiě) 147
9.1.4 隨機(jī)文件訪問(wèn) 158
9.1.5 CSV文件的讀取與寫(xiě)入 159
9.1.6與文件相關(guān)的模塊 161
9.2 數(shù)據(jù)庫(kù) 164
9.2.1 數(shù)據(jù)庫(kù)基礎(chǔ) 164
9.2.2 數(shù)據(jù)庫(kù)訪問(wèn)模塊 165
9.2.3 SQLite數(shù)據(jù)庫(kù) 166
9.2.5 訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟 167
9.2.6 創(chuàng)建數(shù)據(jù)庫(kù)和表 168
9.2.7 數(shù)據(jù)庫(kù)的插入、更新和刪除操作 169
9.2.7 數(shù)據(jù)庫(kù)表的查詢操作 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對(duì)象 193
10.2.3 Pandas的DataFrame對(duì)象 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簡(jiǎn)介 215
11.2 Matplotlib快速入門(mén) 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 決策樹(shù) 237
12.2.1 概述 237
12.2.2 ID3原理簡(jiǎn)介 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原理簡(jiǎn)介 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原理簡(jiǎn)介 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ū)館大數(shù)據(jù)分析 268
13.1 案例背景 268
13.1.1圖書(shū)館大數(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 熱門(mén)書(shū)籍分析 283
13.4 數(shù)據(jù)可視化 284
13.4.1 熱門(mén)書(shū)詞云 285
13.4.2 熱門(mén)書(shū)排名對(duì)比 287
13.5本章小結(jié) 289
13.6 習(xí)題 290