本書以零基礎為起點介紹Python程序設計方法。各章內(nèi)容由淺入深、相互銜接、前后呼應、循序漸進。本書一方面?zhèn)戎鼗A知識的講解,另一方面?zhèn)戎乩肞ython進行數(shù)據(jù)處理的方法和應用。全書各章節(jié)選用豐富的程序設計語言經(jīng)典實例來講解基本概念和程序設計方法,同時配有大量習題上機實踐題供讀者練習。全書共13章,分為基礎篇、高級篇和應用篇三部分,基礎篇第1章進入Python的世界;第2章介紹Python基礎知識;第3章介紹Python流程控制;第4章介紹常用數(shù)據(jù)結構;第5章介紹函數(shù)與模塊;第6章介紹類與對象:第7章介紹類的重用;第8章介紹異常處理;高級篇第9章介紹文件與數(shù)據(jù)庫;第10章介紹Python數(shù)據(jù)處理;第11章介紹Python數(shù)據(jù)可視化;第12章介紹Python數(shù)據(jù)分析;應用篇第13章介紹應用案例--圖書館大數(shù)據(jù)分析。本書中的代碼均在Python 3.6測試通過。本書語言表達簡潔、嚴謹、流暢,內(nèi)容通俗易懂、重點突出、實例豐富,適合作為高等院校各專業(yè)程序設計語言課程的教材,也可以作為非計算機專業(yè)公共基礎課教材或Python愛好者的參考書。
本書語言表達簡潔、嚴謹、流暢,內(nèi)容通俗易懂、重點突出、實例豐富,適合作為高等院校各專業(yè)程序設計語言課程的教材,也可以作為非計算機專業(yè)公共基礎課教材或Python愛好者的參考書。
Python是一門非常容易入門,并且功能非常強大的編程語言。Python也是免費、開源的跨平臺編程語言,支持命令式和函數(shù)式編程。它支持完全面向對象的程序設計。一方面,由于其簡單的語法,很容易上手,因此Python語言擁有各行各業(yè)的眾多使用者,同時使用者提供各種強大的標準庫、擴展庫等。另一方面,Python還是一門近乎全能的編程語言,比如,我們可以使用用Python進行數(shù)據(jù)采集,也可以使用Python進行Web開發(fā),還可以使用Python進行數(shù)據(jù)分析與挖掘等。近年來,Python程序設計語言受到了企業(yè)界、科研單位和教育機構的廣泛重視。
國外很多著名高校的計算機或非計算機專業(yè)已經(jīng)將Python作為程序設計入門課程。國內(nèi)的高校也紛紛開設相關課程。尤其是隨著計算思維和大數(shù)據(jù)概念的普及,Python程序設計在高校中的教學開始全面展開。大數(shù)據(jù)時代的學生需要掌握數(shù)據(jù)處理的基本技術。Python簡單易學,具有強大的數(shù)據(jù)處理能力,并且是一門通用的程序設計語言。因此,Python程序設計語言既適合作為程序設計的人門課程,也適合作為非計算機專業(yè)學生用來解決數(shù)據(jù)分析等各種問題的通用工具。
本書由工作在教學第1線的高校教師編寫完成。作為一本介紹Python基礎知識與應用的教材,本書內(nèi)容簡單易懂、層次脈絡清所、難度適中,內(nèi)容、案例、難點安排恰當,非常適合教學。
本書共13章,分為基礎篇、高級篇和應用篇三部分,主要內(nèi)容及編寫分工如下:
基礎篇第1章進入Python的世界由伏玉琛負責編寫,主要介紹Python的特點、語法、下載與安裝方法、使用方式、集成開發(fā)環(huán)境等。
第2章Python基礎由伏玉琛負責編寫,主要介紹Python語言的基礎知識,包括數(shù)據(jù)類型、標識符、常量與變量和運算符等。
第3章流程控制由伏玉琛負責編寫,主要介紹程序流程控制,包括順序結構、選擇結構和循環(huán)結構等。
第4章常用數(shù)據(jù)結構由伏玉琛負責編寫,主要介紹Python中的常用數(shù)據(jù)結構,包括序列、字典、集合等數(shù)據(jù)結構。
第5章函數(shù)和模塊由楊永負責編寫,主要介紹函數(shù)的定義和調用、形參與實參、函數(shù)的返回、位置參數(shù)、默認參數(shù)、關鍵參數(shù)、可變長度參數(shù)、序列作為參數(shù)、基于函數(shù)的抽象與求精思想、遞歸思想等。
第6章類與對象由楊永負責編寫,主要介紹Python的對象與方法、類的定義、類的屬性、構造函數(shù)和析構構函數(shù)等。
第7章類的重用由楊永負責編寫,主要介紹類的繼承與組合兩種重用方式。
第8章異常處理由楊永負責編寫,主要介紹Python中的異常、異常類、異常的捕獲與處理、自定義異常類、with語句與斷言等。
高級篇第9章文件與數(shù)據(jù)庫由楊永和劉志剛負責編寫,其中9.1文件由楊永編寫,9.2數(shù)據(jù)庫由劉志剛編寫。主要介紹文件的打開與關閉、文件指針、文件讀寫、數(shù)據(jù)庫基礎、數(shù)據(jù)庫訪問、數(shù)據(jù)庫建立等。
第10章數(shù)據(jù)處理由劉志剛負責編寫,主要介紹Numpy和Pandas兩大模塊數(shù)據(jù)處理,包括常用的數(shù)據(jù)運算、操作等。
第11章數(shù)據(jù)可視化由劉志剛負責編寫,主要介紹Matlotlib和Pandas的常見圖形繪制方法。
第12章數(shù)據(jù)分析由劉志剛負責編寫,主要介紹利用Python數(shù)據(jù)分析解決人工智能中的一些常用算法,包括數(shù)據(jù)分類、聚類、預測等分析算法。
應用篇第13章應用案例--圖書館大數(shù)據(jù)分析由文必龍負責編寫,主要通過對圖書館借閱數(shù)據(jù)進行分析,介紹在實際應用中開展大數(shù)據(jù)分析的基本過程,逐步實現(xiàn)需求分析、數(shù)據(jù)理解、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化等全部過程。
本書語言表達簡潔、嚴謹、流暢,內(nèi)容通俗易懂、重點突出、實例豐富,適合作為高等院校各專業(yè)程序設計語言課程的教材,也可以作為非計算機專業(yè)公共基礎課教材或Python愛好者的參考書。
本書提供全套教學課件和源代碼,本書中的代碼均在Python 3.6測試通過。
由于時間倉促,作者水平有限,書中難免出現(xiàn)紕漏,不足之處敬請批評指正,并反饋給我們。
第1章
進入Python的世界 1
1.1 Python簡介 1
1.1.1 Python語言的誕生 1
1.1.2 Python的設計風格 1
1.1.3 Python語言的發(fā)展簡史 2
1.2 Python語言特性 3
1.2.1 Python語言的優(yōu)點 3
1.2.1 Python語言的缺點 4
1.4 第一個Python程序 4
1.4.1 搭建開發(fā)環(huán)境 4
1.4.1 使用解釋器提示符 6
1.4.3 Hello World第一個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 本章小結 20
1.7 習題 21
第2章 Python基礎 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 運算符 29
2.3.1 算術運算符 29
2.3.2 比較運算符 32
2.3.3 賦值運算符 34
2.3.4 位運算符 36
2.3.5 邏輯運算符 38
2.3.6 運算符優(yōu)先級 39
2.4類型轉換 40
2.5 本章小結 42
2.6 習題 42
第3章
流程控制 43
3.1 程序的基本結構 43
3.1.1 順序結構 43
3.1.2 分支結構 43
3.1.3 循環(huán)結構 43
3.2 程序流程圖 44
3.2.1 傳統(tǒng)流程圖 44
3.2.2 結構流程圖 46
3.2 程序的分支結構 47
3.2.1 單分支結構if語句 47
3.2.2 雙分支結構if-else語句 48
3.2.3 多分支結構if-elif-else語句 49
3.2.4 分支結構的嵌套 51
3.3 程序的循環(huán)結構 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 本章小結 58
3.5 習題 58
第4章
常用數(shù)據(jù)結構 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 集合運算 77
4.5 本章小結 77
4.6 習題 78
第5章
函數(shù)與模塊 79
5.1 函數(shù) 79
5.1.1 函數(shù)的定義 79
5.1.2 函數(shù)的調用 80
5.1.3 函數(shù)的返回值 82
5.1.4 函數(shù)的參數(shù) 83
5.1.5 匿名函數(shù) 87
5.1.6 函數(shù)的嵌套調用 88
5.1.7 函數(shù)的嵌套定義 89
5.1.8 函數(shù)的遞歸調用 89
5.1.9 變量的作用域 92
5.2 常用內(nèi)置函數(shù) 96
5.2.1 數(shù)學運算函數(shù) 96
5.2.2 類型轉換函數(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 本章小結 109
5.5 習題 110
第6章
類與對象 113
6.1 面向對象程序設計概述 113
6.1.1 面向對象程序設計思想 113
6.1.2 面向對象中的基本概念 114
6.1.3 面向對象的基本特征 114
6.2類 115
6.3對象 116
6.4類的屬性與方法 117
6.4.1類的屬性 117
6.4.2構造方法和析構方法 119
6.5本章小結 121
6.6習題 121
第7章
類的重用 124
7.1繼承 124
7.1.1父類與子類 124
7.1.2繼承 125
7.1.3繼承關系下的構造方法 127
7.2多繼承 129
7.3組合 131
7.4本章小結 133
7.5習題 133
第8章
異常處理 135
8.1異常處理 135
8.1.1標準異常處理 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 本章小結 143
8.4 習題 144
第9章
文件和數(shù)據(jù)庫 145
9.1 文件 145
9.1.1 文件概述 145
9.1.2 文件的打開與關閉 146
9.1.3 文件的讀寫 147
9.1.4 隨機文件訪問 158
9.1.5 CSV文件的讀取與寫入 159
9.1.6與文件相關的模塊 161
9.2 數(shù)據(jù)庫 164
9.2.1 數(shù)據(jù)庫基礎 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 本章小結 170
9.4 習題 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ù)組的運算 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ù)值運算 206
10.2.6 Pandas的文件操作 208
10.2.7 Pandas的缺失值處理 211
10.3 本章小結 212
10.4 習題 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 散點圖 221
11.3.3 子圖 223
11.3.4 等值線圖 224
11.3.5 三維圖 225
11.3.6 圖像 226
11.4 Matplotlib面向對象方式繪圖 227
11.4.1 面向對象繪圖 227
11.4.2 配置屬性 228
11.5 Pandas繪圖 229
11.5.1 折線圖 229
11.5.2 條形圖 230
11.5.3 直方圖 232
11.6 本章小結 233
11.7 習題 234
第12章
數(shù)據(jù)分析 236
12.1 概述 236
12.2 決策樹 237
12.2.1 概述 237
12.2.2 ID3原理簡介 239
12.2.3 應用案例 240
12.3 人工神經(jīng)網(wǎng)絡 247
12.3.1 概述 247
12.3.2 感知機模型 248
12.3.3 誤差反向傳播算法 250
12.3.4 應用案例 251
12.4 K-近鄰分類 254
12.4.1 概述 254
12.4.2 KNN原理簡介 254
12.4.3 KNN算法流程 255
12.4.4 應用案例 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 應用案例 261
12.6 本章小結 265
12.7 習題 265
第13章
應用案例--圖書館大數(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ù)結構 271
13.2.2 初步了解數(shù)據(jù) 273
13.2.3 數(shù)據(jù)預處理 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本章小結 289
13.6 習題 290