本書介紹使用Python進(jìn)行程序設(shè)計(jì)的方法及應(yīng)用。全書共14章,分為3部分。第1部分為基礎(chǔ)篇(第1~5章),主要介紹Python的基礎(chǔ)語法,包括Python概述、Python基本概念、Python控制結(jié)構(gòu)、函數(shù)和Python數(shù)據(jù)結(jié)構(gòu)。第2部分為進(jìn)階篇(第6~10章),主要介紹Python的一些高級特性和功能,包括模塊、字符串與正則表達(dá)式、面向?qū)ο缶幊、異常處理和文件處理。?部分為應(yīng)用篇(第11~14章),主要介紹Python在某些領(lǐng)域的應(yīng)用方法,包括使用Python進(jìn)行GUI開發(fā)、使用Python進(jìn)行數(shù)據(jù)管理、使用Python進(jìn)行Web開發(fā)和使用Python進(jìn)行多任務(wù)編程。本書可以作為高等學(xué)校計(jì)算機(jī)程序設(shè)計(jì)課程的教材,也可以作為社會各類工程技術(shù)與科研人員的參考書。
北京航空航天大學(xué)副教授,軟件學(xué)院SAP ERP 咨詢顧問專業(yè)主任,比利時(shí)布魯塞爾大學(xué)應(yīng)用科學(xué)學(xué)院應(yīng)用信息技術(shù)專業(yè)碩士、經(jīng)濟(jì)學(xué)院工商管理專業(yè)碩士。具有多年的軟件開發(fā)、項(xiàng)目管理、計(jì)算機(jī)教學(xué)經(jīng)驗(yàn)。對IT行業(yè)具有較全面的認(rèn)識。2003至今任北航軟件學(xué)院副教授。目前研究領(lǐng)域包括:軟件工程 IT項(xiàng)目管理。
基礎(chǔ)篇
第1章 Python概述2
1.1 Python的簡史2
1.2 Python的語言特點(diǎn)3
1.3 搭建Python開發(fā)環(huán)境4
1.3.1 下載與安裝Python4
1.3.2 Python命令行的使用8
1.4 Python的開發(fā)工具8
1.4.1 IDLE8
1.4.2 PyCharm9
1.4.3 Visual Studio Code10
1.5 Python程序——Hello,World11
1.6 Python的編碼規(guī)范11
1.6.1 命名規(guī)則12
1.6.2 代碼縮進(jìn)12
1.6.3 使用空行分隔代碼13
1.6.4 語句的分隔13
1.6.5 PEP 8編碼規(guī)范13
小結(jié)13
習(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)算符19
2.3.4 位運(yùn)算符20
2.3.5 身份運(yùn)算符21
2.3.6 成員運(yùn)算符21
2.4 表達(dá)式21
2.4.1 算術(shù)表達(dá)式21
2.4.2 優(yōu)先級22
2.5 賦值語句22
2.5.1 賦值運(yùn)算符22
2.5.2 增強(qiáng)型賦值運(yùn)算符23
2.6 常用的模塊與函數(shù)24
2.6.1 常用的內(nèi)置函數(shù)24
2.6.2 常用的模塊及函數(shù)26
2.7 基本輸出與基本輸入27
2.7.1 基本輸出28
2.7.2 基本輸入28
小結(jié)29
習(xí)題30
第3章 Python控制結(jié)構(gòu)32
3.1 3種基本控制結(jié)構(gòu)32
3.2 選擇結(jié)構(gòu)32
3.2.1 單選擇結(jié)構(gòu)——if語句32
3.2.2 雙選擇結(jié)構(gòu)——if-else
語句34
3.2.3 多選擇結(jié)構(gòu)——if-elif-else
語句35
3.2.4 選擇結(jié)構(gòu)的嵌套37
3.3 實(shí)例:使用選擇結(jié)構(gòu)進(jìn)行程序
設(shè)計(jì)38
3.3.1 鑒別合法日期38
3.3.2 判斷兩個(gè)圓的位置關(guān)系39
3.4 循環(huán)結(jié)構(gòu)43
3.4.1 while循環(huán)43
3.4.2 for循環(huán)45
3.4.3 break語句與continue
語句46
3.4.4 循環(huán)結(jié)構(gòu)的嵌套47
3.5 實(shí)例:使用循環(huán)結(jié)構(gòu)進(jìn)行程序
設(shè)計(jì)48
3.5.1 計(jì)算質(zhì)數(shù)48
3.5.2 計(jì)算π的近似值49
小結(jié)51
習(xí)題51
第4章 函數(shù)53
4.1 函數(shù)的定義53
4.2 定義函數(shù)53
4.3 調(diào)用函數(shù)54
4.4 變量的作用域55
4.5 函數(shù)的參數(shù)56
4.5.1 形參與實(shí)參56
4.5.2 默認(rèn)值參數(shù)58
4.5.3 位置參數(shù)與關(guān)鍵字參數(shù)58
4.5.4 可變長度參數(shù)59
4.5.5 函數(shù)注解59
4.6 返回多個(gè)值60
4.7 實(shí)例:將功能封裝為函數(shù)60
4.7.1 鑒別合法日期61
4.7.2 封裝turtle模塊圖形
函數(shù)62
4.8 遞歸64
4.9 實(shí)例:使用遞歸解決問題66
4.9.1 實(shí)例:計(jì)算斐波那契數(shù)66
4.9.2 實(shí)例:解決漢諾塔問題67
4.10 lambda表達(dá)式70
4.11 生成器71
4.12 函數(shù)裝飾器72
4.12.1 嵌套函數(shù)72
4.12.2 應(yīng)用函數(shù)裝飾器73
小結(jié)74
習(xí)題74
第5章 Python數(shù)據(jù)結(jié)構(gòu)78
5.1 列表78
5.1.1 列表的基本操作78
5.1.2 列表的函數(shù)81
5.1.3 在函數(shù)中使用列表82
5.1.4 列表的查找84
5.1.5 列表的排序86
5.1.6 多維列表88
5.2 元組90
5.2.1 元組的基本操作90
5.2.2 元組封裝與序列拆封91
5.2.3 元組與列表的比較92
5.3 集合92
5.3.1 集合的基本操作93
5.3.2 子集與超集94
5.3.3 集合運(yùn)算94
5.3.4 集合與列表的比較96
5.4 字典96
5.4.1 字典的基本操作96
5.4.2 字典的函數(shù)98
5.5 實(shí)例:使用數(shù)據(jù)結(jié)構(gòu)進(jìn)行程序
設(shè)計(jì)99
5.5.1 計(jì)算質(zhì)數(shù)99
5.5.2 統(tǒng)計(jì)詞頻100
小結(jié)101
習(xí)題102
進(jìn)階篇
第6章 模塊106
6.1 創(chuàng)建模塊106
6.2 導(dǎo)入模塊106
6.3 包108
6.3.1 將模塊組織成包108
6.3.2 包內(nèi)導(dǎo)入108
6.3.3 包內(nèi)引用109
6.4 安裝第三方包109
小結(jié)110
習(xí)題110
第7章 字符串與正則表達(dá)式113
7.1 字符串的基本操作113
7.2 字符串的函數(shù)114
7.3 格式化字符串116
7.4 實(shí)例:使用字符串進(jìn)行程序
設(shè)計(jì)118
7.4.1 檢測回文串118
7.4.2 字符串的簡單加密119
7.5 字符編碼123
7.5.1 字符編碼方式123
7.5.2 使用Python處理中文124
7.6 正則表達(dá)式125
7.6.1 正則表達(dá)式簡介125
7.6.2 使用re模塊處理正則
表達(dá)式127
7.7 實(shí)例:使用正則表達(dá)式進(jìn)行程序
設(shè)計(jì)130
7.7.1 校驗(yàn)用戶注冊信息
格式130
7.7.2 模擬scanf()函數(shù)131
小結(jié)132
習(xí)題133
第8章 面向?qū)ο缶幊?35
8.1 面向?qū)ο蟮母拍?35
8.2 類與對象135
8.2.1 定義一個(gè)類135
8.2.2 創(chuàng)建類的對象137
8.2.3 定義私有成員138
8.3 迭代器140
8.4 運(yùn)算符重載141
8.5 實(shí)例:進(jìn)行面向?qū)ο蟮某绦?
設(shè)計(jì)144
8.5.1 Circle類的實(shí)現(xiàn)144
8.5.2 Fraction類的實(shí)現(xiàn)147
8.6 繼承151
小結(jié)154
習(xí)題154
第9章 異常處理158
9.1 異常的概念158
9.2 異常的拋出和捕獲159
9.2.1 使用raise關(guān)鍵字拋出
異常159
9.2.2 使用try-except語句捕獲
異常159
9.2.3 使用else和finally子句處理
異常161
9.3 自定義異常162
9.4 使用斷言162
小結(jié)163
習(xí)題163
第10章 文件處理166
10.1 文件的創(chuàng)建與讀寫166
10.1.1 文件的創(chuàng)建與打開166
10.1.2 文件的寫入167
10.1.3 文件的讀取168
10.1.4 設(shè)置文件讀取指針169
10.2 文件操作與目錄操作170
10.2.1 文件操作170
10.2.2 目錄操作171
10.2.3 文件操作與目錄操作的
實(shí)例171
10.3 Python的流對象177
10.3.1 標(biāo)準(zhǔn)輸入178
10.3.2 標(biāo)準(zhǔn)輸出178
10.3.3 日志輸出178
10.4 實(shí)例:處理文件179
10.4.1 獲取文件屬性179
10.4.2 實(shí)例:獲取MP3文件的
元數(shù)據(jù)181
小結(jié)183
習(xí)題183
應(yīng)用篇
第11章 使用Python進(jìn)行GUI開發(fā)186
11.1 GUI編程186
11.2 Tkinter中的主要組件186
11.2.1 標(biāo)簽187
11.2.2 框架188
11.2.3 按鈕188
11.2.4 輸入框189
11.2.5 單選按鈕與復(fù)選按鈕190
11.2.6 列表框與滾動條192
11.2.7 畫布193
11.2.8 標(biāo)準(zhǔn)對話框195
11.3 實(shí)例:使用Tkinter進(jìn)行GUI
編程——三連棋游戲197
11.3.1 設(shè)計(jì)用戶界面197
11.3.2 創(chuàng)建菜單197
11.3.3 創(chuàng)建游戲面板199
11.3.4 連接用戶界面與游戲
邏輯200
小結(jié)206
習(xí)題206
第12章 使用Python進(jìn)行數(shù)據(jù)管理208
12.1 引言208
12.2 數(shù)據(jù)對象的持久化209
12.2.1 使用pickle模塊存取
對象209
12.2.2 使用json模塊進(jìn)行數(shù)據(jù)序列化與反序列化209
12.2.3 使用shelve模塊隨機(jī)訪問對象211
12.3 使用itertools模塊分析和處理
數(shù)據(jù)212
12.3.1 數(shù)據(jù)過濾函數(shù)212
12.3.2 groupby()函數(shù)213
12.4 實(shí)例:分析與處理教務(wù)信息
數(shù)據(jù)214
12.5 Python中SQLite數(shù)據(jù)庫的
使用215
12.5.1 SQLite數(shù)據(jù)庫216
12.5.2 連接數(shù)據(jù)庫216
12.5.3 創(chuàng)建表217
12.5.4 插入數(shù)據(jù)記錄217
12.5.5 查詢數(shù)據(jù)記錄218
12.5.6 更新和刪除數(shù)據(jù)記錄219
12.5.7 回滾與關(guān)閉數(shù)據(jù)庫219
12.6 實(shí)例:封裝MySQL數(shù)據(jù)庫
操作219
小結(jié)221
習(xí)題221
第13章 使用Python進(jìn)行Web開發(fā)223
13.1 Django框架223
13.2 創(chuàng)建項(xiàng)目與模型223
13.2.1 創(chuàng)建項(xiàng)目223
13.2.2 設(shè)置數(shù)據(jù)庫224
13.2.3 啟動服務(wù)器225
13.2.4 創(chuàng)建模型225
13.3 構(gòu)建管理頁面228
13.4 構(gòu)建前端頁面233
小結(jié)236
習(xí)題236
第14章 使用Python進(jìn)行多任務(wù)
編程238
14.1 進(jìn)程與線程238
14.1.1 進(jìn)程238
14.1.2 線程238
14.1.3 串行、并發(fā)與并行239
14.2 Python中的多線程編程240
14.2.1 創(chuàng)建與管理線程240
14.2.2 鎖機(jī)制:線程間的同步
問題243
14.2.3 queue模塊:隊(duì)列
同步246
14.3 Python中的進(jìn)程編程249
14.3.1 創(chuàng)建與終止進(jìn)程249
14.3.2 實(shí)例:編寫簡易的
控制臺250
14.3.3 使用subprocess模塊進(jìn)行
多進(jìn)程管理251
14.3.4 進(jìn)程之間的通信252
小結(jié)254
習(xí)題254
參考文獻(xiàn)256