本書(shū)介紹使用Python進(jìn)行程序設(shè)計(jì)的方法及應(yīng)用。全書(shū)共14章,分為3部分。第1部分為基礎(chǔ)篇(第1~5章),主要介紹Python的基礎(chǔ)語(yǔ)法,包括Python概述、Python基本概念、Python控制結(jié)構(gòu)、函數(shù)和Python數(shù)據(jù)結(jié)構(gòu)。第2部分為進(jìn)階篇(第6~10章),主要介紹Python的一些高級(jí)特性和功能,包括模塊、字符串與正則表達(dá)式、面向?qū)ο缶幊、異常處理和文件處理。?部分為應(yīng)用篇(第11~14章),主要介紹Python在某些領(lǐng)域的應(yīng)用方法,包括使用Python進(jìn)行GUI開(kāi)發(fā)、使用Python進(jìn)行數(shù)據(jù)管理、使用Python進(jìn)行Web開(kāi)發(fā)和使用Python進(jìn)行多任務(wù)編程。本書(shū)可以作為高等學(xué)校計(jì)算機(jī)程序設(shè)計(jì)課程的教材,也可以作為社會(huì)各類(lèi)工程技術(shù)與科研人員的參考書(shū)。
北京航空航天大學(xué)副教授,軟件學(xué)院SAP ERP 咨詢(xún)顧問(wèn)專(zhuān)業(yè)主任,比利時(shí)布魯塞爾大學(xué)應(yīng)用科學(xué)學(xué)院應(yīng)用信息技術(shù)專(zhuān)業(yè)碩士、經(jīng)濟(jì)學(xué)院工商管理專(zhuān)業(yè)碩士。具有多年的軟件開(kāi)發(fā)、項(xiàng)目管理、計(jì)算機(jī)教學(xué)經(jīng)驗(yàn)。對(duì)IT行業(yè)具有較全面的認(rèn)識(shí)。2003至今任北航軟件學(xué)院副教授。目前研究領(lǐng)域包括:軟件工程 IT項(xiàng)目管理。
基礎(chǔ)篇
第1章 Python概述2
1.1 Python的簡(jiǎn)史2
1.2 Python的語(yǔ)言特點(diǎn)3
1.3 搭建Python開(kāi)發(fā)環(huán)境4
1.3.1 下載與安裝Python4
1.3.2 Python命令行的使用8
1.4 Python的開(kāi)發(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 語(yǔ)句的分隔13
1.6.5 PEP 8編碼規(guī)范13
小結(jié)13
習(xí)題14
第2章 Python基本概念15
2.1 基本數(shù)據(jù)類(lèi)型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)先級(jí)22
2.5 賦值語(yǔ)句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語(yǔ)句32
3.2.2 雙選擇結(jié)構(gòu)——if-else
語(yǔ)句34
3.2.3 多選擇結(jié)構(gòu)——if-elif-else
語(yǔ)句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語(yǔ)句與continue
語(yǔ)句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 可變長(zhǎng)度參數(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í)例:使用遞歸解決問(wèn)題66
4.9.1 實(shí)例:計(jì)算斐波那契數(shù)66
4.9.2 實(shí)例:解決漢諾塔問(wèn)題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 檢測(cè)回文串118
7.4.2 字符串的簡(jiǎn)單加密119
7.5 字符編碼123
7.5.1 字符編碼方式123
7.5.2 使用Python處理中文124
7.6 正則表達(dá)式125
7.6.1 正則表達(dá)式簡(jiǎn)介125
7.6.2 使用re模塊處理正則
表達(dá)式127
7.7 實(shí)例:使用正則表達(dá)式進(jìn)行程序
設(shè)計(jì)130
7.7.1 校驗(yàn)用戶(hù)注冊(cè)信息
格式130
7.7.2 模擬scanf()函數(shù)131
小結(jié)132
習(xí)題133
第8章 面向?qū)ο缶幊?35
8.1 面向?qū)ο蟮母拍?35
8.2 類(lèi)與對(duì)象135
8.2.1 定義一個(gè)類(lèi)135
8.2.2 創(chuàng)建類(lèi)的對(duì)象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類(lèi)的實(shí)現(xiàn)144
8.5.2 Fraction類(lèi)的實(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語(yǔ)句捕獲
異常159
9.2.3 使用else和finally子句處理
異常161
9.3 自定義異常162
9.4 使用斷言162
小結(jié)163
習(xí)題163
第10章 文件處理166
10.1 文件的創(chuàng)建與讀寫(xiě)166
10.1.1 文件的創(chuàng)建與打開(kāi)166
10.1.2 文件的寫(xiě)入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的流對(duì)象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開(kāi)發(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 列表框與滾動(dòng)條192
11.2.7 畫(huà)布193
11.2.8 標(biāo)準(zhǔn)對(duì)話(huà)框195
11.3 實(shí)例:使用Tkinter進(jìn)行GUI
編程——三連棋游戲197
11.3.1 設(shè)計(jì)用戶(hù)界面197
11.3.2 創(chuàng)建菜單197
11.3.3 創(chuàng)建游戲面板199
11.3.4 連接用戶(hù)界面與游戲
邏輯200
小結(jié)206
習(xí)題206
第12章 使用Python進(jìn)行數(shù)據(jù)管理208
12.1 引言208
12.2 數(shù)據(jù)對(duì)象的持久化209
12.2.1 使用pickle模塊存取
對(duì)象209
12.2.2 使用json模塊進(jìn)行數(shù)據(jù)序列化與反序列化209
12.2.3 使用shelve模塊隨機(jī)訪(fǎng)問(wèn)對(duì)象211
12.3 使用itertools模塊分析和處理
數(shù)據(jù)212
12.3.1 數(shù)據(jù)過(guò)濾函數(shù)212
12.3.2 groupby()函數(shù)213
12.4 實(shí)例:分析與處理教務(wù)信息
數(shù)據(jù)214
12.5 Python中SQLite數(shù)據(jù)庫(kù)的
使用215
12.5.1 SQLite數(shù)據(jù)庫(kù)216
12.5.2 連接數(shù)據(jù)庫(kù)216
12.5.3 創(chuàng)建表217
12.5.4 插入數(shù)據(jù)記錄217
12.5.5 查詢(xún)數(shù)據(jù)記錄218
12.5.6 更新和刪除數(shù)據(jù)記錄219
12.5.7 回滾與關(guān)閉數(shù)據(jù)庫(kù)219
12.6 實(shí)例:封裝MySQL數(shù)據(jù)庫(kù)
操作219
小結(jié)221
習(xí)題221
第13章 使用Python進(jìn)行Web開(kāi)發(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ù)庫(kù)224
13.2.3 啟動(dòng)服務(wù)器225
13.2.4 創(chuàng)建模型225
13.3 構(gòu)建管理頁(yè)面228
13.4 構(gòu)建前端頁(yè)面233
小結(jié)236
習(xí)題236
第14章 使用Python進(jìn)行多任務(wù)
編程238
14.1 進(jìn)程與線(xiàn)程238
14.1.1 進(jìn)程238
14.1.2 線(xiàn)程238
14.1.3 串行、并發(fā)與并行239
14.2 Python中的多線(xiàn)程編程240
14.2.1 創(chuàng)建與管理線(xiàn)程240
14.2.2 鎖機(jī)制:線(xiàn)程間的同步
問(wèn)題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í)例:編寫(xiě)簡(jiǎn)易的
控制臺(tái)250
14.3.3 使用subprocess模塊進(jìn)行
多進(jìn)程管理251
14.3.4 進(jìn)程之間的通信252
小結(jié)254
習(xí)題254
參考文獻(xiàn)256