本書介紹了使用Python語言進行程序設計的方法及其應用。全書共14章,分為三部分。第一部分為基礎篇(第1~5章),主要介紹Python的基礎語法,包括Python語言的概述,Python的基本數據類型、變量、運算符、表達式等概念,三種程序的基本控制結構,函數,列表、元組、集合與字典四種簡單數據結構。第二部分為進階篇(第6~10章),主要介紹Python的一些高級特性和功能,包括模塊和包的使用,字符串的處理,Python的面向對象編程,異常處理和文件處理。第三部分為應用篇(第11~14章),主要介紹Python在某些領域的應用方法,包括GUI程序開發、數據管理和數據庫管理、Web開發及多任務編程。本書既可以作為高等院校計算機與軟件相關專業的教材,也可以作為軟件從業人員的學習指導用書。
前 言
Python是一種解釋型、支持面向對象特性的、動態數據類型的高級程序設計語言。自從20世紀90年代Python公開發布以來,經過二十多年的發展,Python以其語法簡潔而高效、類庫豐富而強大、適合快速開發等原因,成為當下最流行的腳本語言之一,也廣泛應用到了統計分析、計算可視化、圖像工程、網站開發等許多專業領域。
相比于C++、Java等語言來說,Python更加易于學習和掌握,并且可以利用其大量的內置函數與豐富的擴展庫來快速實現許多復雜的功能。在Python語言的學習過程中,仍然需要通過不斷地練習與體會來熟悉Python的編程模式,盡量不要將其他語言的編程風格用在Python中,而要從自然、簡潔的角度出發,以免設計出低效率的Python程序。
本書的主要特色如下。
知識技術全面準確:本書主要針對國內計算機相關專業的高校學生以及程序設計愛好者們,詳細介紹了Python語言的各種規則和規范,以便讓讀者能夠全面掌握這門語言,從而設計出優秀的程序。
內容架構循序漸進:本書的知識脈絡清晰明了,基礎篇主要介紹Python的基本語法規則,提高篇主要講解一些更加深層的概念,而應用篇則說明Python在具體應用場景中應當如何使用。本書內容由淺入深,便于讀者理解和掌握。
代碼實例豐富完整:對于書中每一個知識點都會配有一些示例代碼并輔助相關說明文字及運行結果,還會在某些章節中對一些經典的程序設計問題進行深入的講解和探討。讀者可以參考源程序上機操作,加深體會。
本書中所有代碼均能在Python 2.7.11中成功運行;對其稍加調整后也可以適用于Python 3.x。
由于Python的教學方法本身還在探索之中,加之編者的水平和能力有限,本書難免有疏漏之處,懇請各位同仁和廣大讀者批評指正,也希望各位能就實踐過程中的經驗和心得與編者進行交流(編者郵箱:yunxianglu@hotmail.com)。
編 者
查看全部↓
呂云翔,任職于北京航空航天大學,具有多年的軟件開發、項目管理、計算機教學經驗。
目 錄
基 礎 篇
第1章 Python語言概述 2
1.1 Python簡史 2
1.2 Python的語言特點 3
1.3 搭建Python開發環境 4
1.3.1 Python的下載與安裝 4
1.3.2 Python命令行的使用 8
1.4 Python的開發工具 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的編碼規范 12
1.6.1 命名規則 12
1.6.2 代碼縮進 12
1.6.3 使用空行分隔代碼 13
1.6.4 語句的分隔 13
小結 14
習題 14
第2章 Python基本概念 15
2.1 基本數據類型 15
2.2 變量 17
2.2.1 變量的命名 17
2.2.2 變量的創建 18
2.3 運算符 19
2.3.1 算術運算符 19
2.3.2 關系運算符 19
2.3.3 邏輯運算符 20
2.3.4 位運算符 20
2.3.5 身份運算符 21
2.3.6 成員運算符 21
2.4 表達式 22
2.4.1 算術表達式 22
2.4.2 優先級 22
2.5 賦值語句 23
2.5.1 賦值運算符 23
2.5.2 增強型賦值運算符 24
2.6 常用模塊與函數 25
2.6.1 常用內置函數 25
2.6.2 常用模塊及函數 27
2.7 基本輸入/輸出 28
2.7.1 基本輸出 29
2.7.2 基本輸入 29
小結 31
習題 31
第3章 Python控制結構 33
3.1 三種基本控制結構 33
3.2 選擇結構 33
3.2.1 單選擇結構―if語句 33
3.2.2 雙選擇結構―if-else語句 35
3.2.3 多選擇結構―if-elif-else語句 36
3.2.4 選擇結構的嵌套 38
3.3 實例:使用選擇結構進行程序設計 39
3.3.1 鑒別合法日期 39
3.3.2 判斷兩個圓的位置關系 41
3.4 循環結構 45
3.4.1 while循環 45
3.4.2 for循環 47
3.4.3 break語句與continue語句 48
3.4.4 循環結構的嵌套 49
3.5 實例:使用循環結構進行程序設計 50
3.5.1 計算質數 50
3.5.2 計算π的近似值 51
小結 53
習題 53
第4章 函數 54
4.1 函數的定義 54
4.2 定義函數 54
4.3 調用函數 55
4.4 變量的作用域 56
4.5 函數的參數 57
4.5.1 形參與實參 57
4.5.2 默認參數 58
4.5.3 位置參數和關鍵字參數 59
4.5.4 可變長度參數 60
4.6 返回多個值 61
4.7 實例:將功能封裝為函數 61
4.7.1 鑒別合法日期 61
4.7.2 封裝turtle模塊圖形函數 63
4.8 遞歸 65
4.9 實例:使用遞歸解決問題 67
4.9.1 實例:計算斐波那契數 67
4.9.2 實例:漢諾塔 68
4.10 lambda表達式 71
4.11 生成器 72
小結 73
習題 73
第5章 Python數據結構 75
5.1 列表 75
5.1.1 列表的基本操作 75
5.1.2 列表相關的函數 78
5.1.3 在函數中使用列表 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 集合運算 92
5.3.4 集合與列表的比較 93
5.4 字典 93
5.4.1 字典的基本操作 94
5.4.2 字典相關的函數 95
5.5 實例:使用數據結構進行程序設計 96
5.5.1 計算質數 96
5.5.2 詞頻統計 98
小結 99
習題 99
進 階 篇
第6章 使用模塊 101
6.1 模塊的創建 101
6.2 模塊的導入 102
6.3 包 103
6.3.1 模塊組織成包 103
6.3.2 從包中導入 104
6.3.3 包內引用 104
6.4 第三方包的安裝 105
小結 105
習題 106
第7章 字符串與正則表達式 107
7.1 字符串的基本操作 107
7.2 字符串相關函數 108
7.3 格式化字符串 110
7.4 實例:使用字符串進行程序設計 112
7.4.1 檢測回文串 112
7.4.2 字符串的簡單加密 113
7.5 字符編碼 117
7.5.1 字符編碼方式 117
7.5.2 使用Python處理中文 118
7.6 正則表達式 119
7.6.1 正則表達式簡介 120
7.6.2 使用re模塊處理正則表達式 122
7.7 實例:使用正則表達式進行程序設計 124
7.7.1 用戶注冊信息格式校驗 124
7.7.2 模擬scanf函數 126
小結 127
習題 127
第8章 面向對象編程 129
8.1 面向對象的概念 129
8.2 類與對象 129
8.2.1 定義一個類 130
8.2.2 構造類的對象 131
8.2.3 定義私有成員 133
8.3 運算符重載 134
8.4 實例:進行面向對象的程序設計 138
8.4.1 Circle類的實現 138
8.4.2 Fraction類的實現 142
8.5 繼承 145
小結 148
習題 148
第9章 異常處理 150
9.1 異常的概念 150
9.2 異常的拋出與捕獲 151
9.2.1 使用raise關鍵字拋出異常 151
9.2.2 使用try...except捕獲異常 152
9.2.3 使用else和finally子句處理異常 153
9.3 自定義異常 154
9.4 使用斷言 155
小結 155
習題 156
第10章 文件處理 157
10.1 文件的創建與讀寫 157
10.1.1 文件的創建與打開 157
10.1.2 文件的寫入 158
10.1.3 文件的讀取 159
10.1.4 設置文件讀取指針 160
10.2 文件和目錄操作 161
10.2.1 文件操作 161
10.2.2 目錄操作 162
10.2.3 文件和目錄操作實例 163
10.3 Python的流對象 169
10.3.1 標準輸入 169
10.3.2 標準輸出 170
10.3.3 日志輸出 170
10.4 實例:處理文件 171
10.4.1 獲取文件屬性 171
10.4.2 實例:獲取MP3文件的元數據 173
小結 175
習題 175
應 用 篇
第11章 使用Python進行GUI開發 177
11.1 GUI編程 177
11.2 Tkinter的主要組件 178
11.2.1 標簽 178
11.2.2 框架 179
11.2.3 按鈕 180
11.2.4 輸入框 180
11.2.5 單選按鈕和復選按鈕 181
11.2.6 列表框與滾動條 183
11.2.7 畫布 184
11.2.8 標準對話框 186
11.3 實例:使用Tkinter進行GUI編程―三連棋游戲 188
11.3.1 用戶界面設計 188
11.3.2 創建菜單 189
11.3.3 創建游戲面板 190
11.3.4 用戶界面與游戲的連接 191
小結 197
習題 198
第12章 使用Python進行數據管理 199
12.1 引言 199
12.2 數據對象的持久化 200
12.2.1 使用pickle模塊存取對象 200
12.2.2 使用shelve模塊隨機訪問對象 200
12.3 使用itertools模塊分析和處理數據 202
12.3.1 數據過濾函數 202
12.3.2 groupby函數 203
12.4 實例:教務信息數據分析與處理 204
12.5 Python中SQLite數據庫的使用 205
12.5.1 SQLite 206
12.5.2 連接數據庫 206
12.5.3 創建表 207
12.5.4 插入數據記錄 207
12.5.5 查詢數據記錄 208
12.5.6 更新和刪除數據記錄 209
12.5.7 回滾與關閉數據庫 209
12.6 實例:封裝MySQL數據庫操作 209
小結 211
習題 212
第13章 使用Python進行Web開發 213
13.1 Django 213
13.2 創建項目和模型 213
13.2.1 創建項目 213
13.2.2 數據庫設置 214
13.2.3 啟動服務器 215
13.2.4 創建模型 215
13.3 生成管理頁面 218
13.4 構建前端頁面 222
小結 225
習題 225
第14章 使用Python進行多任務編程 226
14.1 進程和線程 226
14.1.1 進程 226
14.1.2 線程 226
14.1.3 串行、并發與并行 227
14.2 Python中的多線程編程 228
14.2.1 線程的創建與管理 228
14.2.2 鎖機制:線程間的同步問題 231
14.2.3 Queue模塊:隊列同步 234
14.3 Python中的進程編程 237
14.3.1 進程的創建與終止 237
14.3.2 實例:編寫簡易的控制臺 239
14.3.3 使用subprocess模塊進行多進程管理 239
14.3.4 進程間通信 240
小結 243
習題 243
附錄A:ASCII碼表 244
附錄B:Python關鍵字 245
附錄C:Python開源項目介紹 246
參考文獻 249