本書介紹了使用Python語言進(jìn)行程序設(shè)計(jì)的方法及其應(yīng)用。全書共14章,分為三部分。第一部分為基礎(chǔ)篇(第1~5章),主要介紹Python的基礎(chǔ)語法,包括Python語言的概述,Python的基本數(shù)據(jù)類型、變量、運(yùn)算符、表達(dá)式等概念,三種程序的基本控制結(jié)構(gòu),函數(shù),列表、元組、集合與字典四種簡單數(shù)據(jù)結(jié)構(gòu)。第二部分為進(jìn)階篇(第6~10章),主要介紹Python的一些高級特性和功能,包括模塊和包的使用,字符串的處理,Python的面向?qū)ο缶幊,異常處理和文件處理。第三部分為?yīng)用篇(第11~14章),主要介紹Python在某些領(lǐng)域的應(yīng)用方法,包括GUI程序開發(fā)、數(shù)據(jù)管理和數(shù)據(jù)庫管理、Web開發(fā)及多任務(wù)編程。本書既可以作為高等院校計(jì)算機(jī)與軟件相關(guān)專業(yè)的教材,也可以作為軟件從業(yè)人員的學(xué)習(xí)指導(dǎo)用書。
呂云翔,任職于北京航空航天大學(xué),具有多年的軟件開發(fā)、項(xiàng)目管理、計(jì)算機(jī)教學(xué)經(jīng)驗(yàn)。
目 錄
基 礎(chǔ) 篇
第1章 Python語言概述 2
1.1 Python簡史 2
1.2 Python的語言特點(diǎn) 3
1.3 搭建Python開發(fā)環(huán)境 4
1.3.1 Python的下載與安裝 4
1.3.2 Python命令行的使用 8
1.4 Python的開發(fā)工具 8
1.4.1 IDLE 9
1.4.2 PyCharm 9
1.4.3 Eclipse 10
1.5 第一個Python程序―Hello, World 11
1.6 Python的編碼規(guī)范 12
1.6.1 命名規(guī)則 12
1.6.2 代碼縮進(jìn) 12
1.6.3 使用空行分隔代碼 13
1.6.4 語句的分隔 13
小結(jié) 14
習(xí)題 14
第2章 Python基本概念 15
2.1 基本數(shù)據(jù)類型 15
2.2 變量 17
2.2.1 變量的命名 17
2.2.2 變量的創(chuàng)建 18
2.3 運(yùn)算符 19
2.3.1 算術(shù)運(yùn)算符 19
2.3.2 關(guān)系運(yùn)算符 19
2.3.3 邏輯運(yùn)算符 20
2.3.4 位運(yùn)算符 20
2.3.5 身份運(yùn)算符 21
2.3.6 成員運(yùn)算符 21
2.4 表達(dá)式 22
2.4.1 算術(shù)表達(dá)式 22
2.4.2 優(yōu)先級 22
2.5 賦值語句 23
2.5.1 賦值運(yùn)算符 23
2.5.2 增強(qiáng)型賦值運(yùn)算符 24
2.6 常用模塊與函數(shù) 25
2.6.1 常用內(nèi)置函數(shù) 25
2.6.2 常用模塊及函數(shù) 27
2.7 基本輸入/輸出 28
2.7.1 基本輸出 29
2.7.2 基本輸入 29
小結(jié) 31
習(xí)題 31
第3章 Python控制結(jié)構(gòu) 33
3.1 三種基本控制結(jié)構(gòu) 33
3.2 選擇結(jié)構(gòu) 33
3.2.1 單選擇結(jié)構(gòu)―if語句 33
3.2.2 雙選擇結(jié)構(gòu)―if-else語句 35
3.2.3 多選擇結(jié)構(gòu)―if-elif-else語句 36
3.2.4 選擇結(jié)構(gòu)的嵌套 38
3.3 實(shí)例:使用選擇結(jié)構(gòu)進(jìn)行程序設(shè)計(jì) 39
3.3.1 鑒別合法日期 39
3.3.2 判斷兩個圓的位置關(guān)系 41
3.4 循環(huán)結(jié)構(gòu) 45
3.4.1 while循環(huán) 45
3.4.2 for循環(huán) 47
3.4.3 break語句與continue語句 48
3.4.4 循環(huán)結(jié)構(gòu)的嵌套 49
3.5 實(shí)例:使用循環(huán)結(jié)構(gòu)進(jìn)行程序設(shè)計(jì) 50
3.5.1 計(jì)算質(zhì)數(shù) 50
3.5.2 計(jì)算π的近似值 51
小結(jié) 53
習(xí)題 53
第4章 函數(shù) 54
4.1 函數(shù)的定義 54
4.2 定義函數(shù) 54
4.3 調(diào)用函數(shù) 55
4.4 變量的作用域 56
4.5 函數(shù)的參數(shù) 57
4.5.1 形參與實(shí)參 57
4.5.2 默認(rèn)參數(shù) 58
4.5.3 位置參數(shù)和關(guān)鍵字參數(shù) 59
4.5.4 可變長度參數(shù) 60
4.6 返回多個值 61
4.7 實(shí)例:將功能封裝為函數(shù) 61
4.7.1 鑒別合法日期 61
4.7.2 封裝turtle模塊圖形函數(shù) 63
4.8 遞歸 65
4.9 實(shí)例:使用遞歸解決問題 67
4.9.1 實(shí)例:計(jì)算斐波那契數(shù) 67
4.9.2 實(shí)例:漢諾塔 68
4.10 lambda表達(dá)式 71
4.11 生成器 72
小結(jié) 73
習(xí)題 73
第5章 Python數(shù)據(jù)結(jié)構(gòu) 75
5.1 列表 75
5.1.1 列表的基本操作 75
5.1.2 列表相關(guān)的函數(shù) 78
5.1.3 在函數(shù)中使用列表 79
5.1.4 列表查找 81
5.1.5 列表排序 83
5.1.6 多維列表 86
5.2 元組 87
5.2.1 元組的基本操作 87
5.2.2 元組封裝與序列拆封 89
5.2.3 元組與列表的比較 90
5.3 集合 90
5.3.1 集合的基本操作 90
5.3.2 子集與超集 91
5.3.3 集合運(yùn)算 92
5.3.4 集合與列表的比較 93
5.4 字典 93
5.4.1 字典的基本操作 94
5.4.2 字典相關(guān)的函數(shù) 95
5.5 實(shí)例:使用數(shù)據(jù)結(jié)構(gòu)進(jìn)行程序設(shè)計(jì) 96
5.5.1 計(jì)算質(zhì)數(shù) 96
5.5.2 詞頻統(tǒng)計(jì) 98
小結(jié) 99
習(xí)題 99
進(jìn) 階 篇
第6章 使用模塊 101
6.1 模塊的創(chuàng)建 101
6.2 模塊的導(dǎo)入 102
6.3 包 103
6.3.1 模塊組織成包 103
6.3.2 從包中導(dǎo)入 104
6.3.3 包內(nèi)引用 104
6.4 第三方包的安裝 105
小結(jié) 105
習(xí)題 106
第7章 字符串與正則表達(dá)式 107
7.1 字符串的基本操作 107
7.2 字符串相關(guān)函數(shù) 108
7.3 格式化字符串 110
7.4 實(shí)例:使用字符串進(jìn)行程序設(shè)計(jì) 112
7.4.1 檢測回文串 112
7.4.2 字符串的簡單加密 113
7.5 字符編碼 117
7.5.1 字符編碼方式 117
7.5.2 使用Python處理中文 118
7.6 正則表達(dá)式 119
7.6.1 正則表達(dá)式簡介 120
7.6.2 使用re模塊處理正則表達(dá)式 122
7.7 實(shí)例:使用正則表達(dá)式進(jìn)行程序設(shè)計(jì) 124
7.7.1 用戶注冊信息格式校驗(yàn) 124
7.7.2 模擬scanf函數(shù) 126
小結(jié) 127
習(xí)題 127
第8章 面向?qū)ο缶幊?129
8.1 面向?qū)ο蟮母拍?129
8.2 類與對象 129
8.2.1 定義一個類 130
8.2.2 構(gòu)造類的對象 131
8.2.3 定義私有成員 133
8.3 運(yùn)算符重載 134
8.4 實(shí)例:進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì) 138
8.4.1 Circle類的實(shí)現(xiàn) 138
8.4.2 Fraction類的實(shí)現(xiàn) 142
8.5 繼承 145
小結(jié) 148
習(xí)題 148
第9章 異常處理 150
9.1 異常的概念 150
9.2 異常的拋出與捕獲 151
9.2.1 使用raise關(guān)鍵字拋出異常 151
9.2.2 使用try...except捕獲異常 152
9.2.3 使用else和finally子句處理異常 153
9.3 自定義異常 154
9.4 使用斷言 155
小結(jié) 155
習(xí)題 156
第10章 文件處理 157
10.1 文件的創(chuàng)建與讀寫 157
10.1.1 文件的創(chuàng)建與打開 157
10.1.2 文件的寫入 158
10.1.3 文件的讀取 159
10.1.4 設(shè)置文件讀取指針 160
10.2 文件和目錄操作 161
10.2.1 文件操作 161
10.2.2 目錄操作 162
10.2.3 文件和目錄操作實(shí)例 163
10.3 Python的流對象 169
10.3.1 標(biāo)準(zhǔn)輸入 169
10.3.2 標(biāo)準(zhǔn)輸出 170
10.3.3 日志輸出 170
10.4 實(shí)例:處理文件 171
10.4.1 獲取文件屬性 171
10.4.2 實(shí)例:獲取MP3文件的元數(shù)據(jù) 173
小結(jié) 175
習(xí)題 175
應(yīng) 用 篇
第11章 使用Python進(jìn)行GUI開發(fā) 177
11.1 GUI編程 177
11.2 Tkinter的主要組件 178
11.2.1 標(biāo)簽 178
11.2.2 框架 179
11.2.3 按鈕 180
11.2.4 輸入框 180
11.2.5 單選按鈕和復(fù)選按鈕 181
11.2.6 列表框與滾動條 183
11.2.7 畫布 184
11.2.8 標(biāo)準(zhǔn)對話框 186
11.3 實(shí)例:使用Tkinter進(jìn)行GUI編程―三連棋游戲 188
11.3.1 用戶界面設(shè)計(jì) 188
11.3.2 創(chuàng)建菜單 189
11.3.3 創(chuàng)建游戲面板 190
11.3.4 用戶界面與游戲的連接 191
小結(jié) 197
習(xí)題 198
第12章 使用Python進(jìn)行數(shù)據(jù)管理 199
12.1 引言 199
12.2 數(shù)據(jù)對象的持久化 200
12.2.1 使用pickle模塊存取對象 200
12.2.2 使用shelve模塊隨機(jī)訪問對象 200
12.3 使用itertools模塊分析和處理數(shù)據(jù) 202
12.3.1 數(shù)據(jù)過濾函數(shù) 202
12.3.2 groupby函數(shù) 203
12.4 實(shí)例:教務(wù)信息數(shù)據(jù)分析與處理 204
12.5 Python中SQLite數(shù)據(jù)庫的使用 205
12.5.1 SQLite 206
12.5.2 連接數(shù)據(jù)庫 206
12.5.3 創(chuàng)建表 207
12.5.4 插入數(shù)據(jù)記錄 207
12.5.5 查詢數(shù)據(jù)記錄 208
12.5.6 更新和刪除數(shù)據(jù)記錄 209
12.5.7 回滾與關(guān)閉數(shù)據(jù)庫 209
12.6 實(shí)例:封裝MySQL數(shù)據(jù)庫操作 209
小結(jié) 211
習(xí)題 212
第13章 使用Python進(jìn)行Web開發(fā) 213
13.1 Django 213
13.2 創(chuàng)建項(xiàng)目和模型 213
13.2.1 創(chuàng)建項(xiàng)目 213
13.2.2 數(shù)據(jù)庫設(shè)置 214
13.2.3 啟動服務(wù)器 215
13.2.4 創(chuàng)建模型 215
13.3 生成管理頁面 218
13.4 構(gòu)建前端頁面 222
小結(jié) 225
習(xí)題 225
第14章 使用Python進(jìn)行多任務(wù)編程 226
14.1 進(jìn)程和線程 226
14.1.1 進(jìn)程 226
14.1.2 線程 226
14.1.3 串行、并發(fā)與并行 227
14.2 Python中的多線程編程 228
14.2.1 線程的創(chuàng)建與管理 228
14.2.2 鎖機(jī)制:線程間的同步問題 231
14.2.3 Queue模塊:隊(duì)列同步 234
14.3 Python中的進(jìn)程編程 237
14.3.1 進(jìn)程的創(chuàng)建與終止 237
14.3.2 實(shí)例:編寫簡易的控制臺 239
14.3.3 使用subprocess模塊進(jìn)行多進(jìn)程管理 239
14.3.4 進(jìn)程間通信 240
小結(jié) 243
習(xí)題 243
附錄A:ASCII碼表 244
附錄B:Python關(guān)鍵字 245
附錄C:Python開源項(xiàng)目介紹 246
參考文獻(xiàn) 249