本書較為全面地介紹Python程序設計基礎。全書共13章,主要包括Python簡介、基礎語法知識、條件、循環(huán)、字符串、文件、列表、元組、函數(shù)、字典、異常和異常處理、圖形用戶界面、面向對象程序設計、數(shù)據(jù)庫支持、程序開發(fā)進階等。每章后面都提供習題和實戰(zhàn)作業(yè),通過練習和操作實踐,幫助讀者鞏固所學的內容。
本書可作為普通高等學校、高職高專院校相關專業(yè)計算機程序設計基礎的教材,也可以作為程序設計培訓班教材,并適合計算機編程的專業(yè)人員和廣大計算機愛好者自學使用。
1.每章一個引例,以實際問題引出相關的概念
2.體現(xiàn)計算機科學的思想和方法,突出計算思維的訓練
3.每章一個大案例, 是對本章節(jié)一個綜合運用
4.大數(shù)據(jù)人才培養(yǎng)規(guī)劃教材
蔡永銘,教授,中山大學生物醫(yī)學工程博士畢業(yè),美國UTD計算機系訪問學者一年師從堵丁柱教授。現(xiàn)任廣東藥科大學醫(yī)藥信息工程學院副院長(主持工作),南方生物醫(yī)藥大數(shù)據(jù)工程中心主任。主要研究領域包括復雜網(wǎng)絡藥理學模型、醫(yī)藥衛(wèi)生數(shù)據(jù)挖掘和移動網(wǎng)絡大數(shù)據(jù)處理。
第 1章 Python簡介 1
1.1 認識Python 1
1.1.1 什么是Python語言 1
1.1.2 Python語言的優(yōu)點與缺點 2
1.1.3 為什么選擇Python語言 3
1.2 Python的安裝 4
1.2.1 Windows環(huán)境下安裝 4
1.2.2 Linux和UNIX環(huán)境下安裝 6
本章小結 7
練習題 7
實戰(zhàn)作業(yè) 7
第 2章 基礎語法知識 8
2.1 數(shù)字和表達式 8
2.2 變量 10
2.3 語句 11
2.4 獲取用戶輸入 11
2.5 函數(shù) 12
2.6 模塊 13
2.7 程序的運行 14
2.7.1 通過命令提示符運行Python腳本 14
2.7.2 讓腳本像普通程序一樣運行 14
2.7.3 注釋 15
2.8 字符串 16
2.8.1 單引號字符串和轉義引號 16
2.8.2 拼接字符串 17
2.8.3 字符串str和repr 18
2.8.4 input 19
2.8.5 長字符串、原始字符串和Unicode 19
本章小結 21
練習題 22
第3章 條件、循環(huán)和其他語句 23
3.1 print語句的應用 23
3.2 賦值語句 24
3.2.1 序列解包 25
3.2.2 鏈式賦值 25
3.2.3 增量賦值 25
3.3 代碼塊與縮進 26
3.4 條件語句 26
3.4.1 布爾變量 26
3.4.2 if 語句 26
3.4.3 else子句 27
3.4.4 elif子句 27
3.4.5 嵌套條件語句 29
3.5 循環(huán)語句 30
3.5.1 while循環(huán) 31
3.5.2 for循環(huán) 32
3.5.3 Python 循環(huán)嵌套 34
3.5.4 跳出循環(huán)(break與continue) 34
3.5.5 循環(huán)中的else子句 35
3.5.6 綜合應用 36
本章小結 38
練習題 38
實戰(zhàn)作業(yè) 41
第4章 字符串 43
4.1 字符串的基本操作 43
4.1.1 字符串的表示 43
4.1.2 索引 44
4.1.3 分片 45
4.1.4 合并 48
4.1.5 復制 48
4.1.6 截取 49
4.1.7 比較 50
4.1.8 長度與最值 51
4.1.9 in運算符 51
4.2 字符串格式化 52
4.2.1 字符串的格式化輸出 52
4.2.2 寬度和精度 53
4.2.3 字符串轉義字符 54
4.3 常用字符串函數(shù)和方法 55
本章小結 61
練習題 61
實戰(zhàn)作業(yè) 62
第5章 文件 64
5.1 文件和文件路徑 65
5.1.1 os.path.join()和os.mkdir() 66
5.1.2 絕對路徑和相對路徑 66
5.1.3 查看當前目錄os.getcwd() 67
5.1.4 改變當前目錄os.chdir() 67
5.1.5 os.remove()及os.rmdir() 67
5.1.6 rename()函數(shù) 67
5.1.7 表示當前目錄的“.”和表示上級目錄的“..” 67
5.1.8 os.walk()方法 68
5.2 文件的讀寫 69
5.2.1 open()函數(shù) 69
5.2.2 read()方法 70
5.2.3 write()方法 70
5.2.4 通用新行格式 72
5.3 文件定位 72
5.3.1 tell()函數(shù) 73
5.3.2 seek()函數(shù) 73
5.4 文件、目錄相關的函數(shù)及綜合應用示例 73
5.4.1 file對象函數(shù) 73
5.4.2 目錄常用函數(shù) 74
5.4.3 os模塊綜合應用示例 75
5.5 CSV文件操作 76
5.5.1 CSV模塊 76
5.5.2 CSV Reader 78
5.5.3 CSV Writer 78
5.5.4 CSV應用實例 78
本章小結 80
練習題 80
實戰(zhàn)作業(yè) 81
第6章 列表和元組 83
6.1 序列概覽 85
6.2 通用序列操作 85
6.2.1 索引 86
6.2.2 分片 88
6.2.3 列表的運算 90
6.2.4 列表的常用函數(shù) 91
6.3 列表對象 92
6.3.1 基本的列表操作 92
6.3.2 列表方法 93
6.3.3 列表解析 96
6.4 元組:不可變序列 96
6.4.1 tuple函數(shù) 97
6.4.2 基本元組操作 97
6.4.3 為什么需要元組 98
6.5 列表應用舉例:文件分析 98
本章小結 101
練習題 101
實戰(zhàn)作業(yè) 102
第7章 函數(shù) 104
7.1 什么是函數(shù) 104
7.2 參數(shù)傳遞 106
7.3 參數(shù)的類型 107
7.3.1 必備參數(shù) 107
7.3.2 關鍵字參數(shù) 108
7.3.3 默認參數(shù) 108
7.3.4 不定長參數(shù) 109
7.4 匿名函數(shù) 110
7.5 變量作用域 111
7.6 函數(shù)的屬性 113
7.7 Python中的main函數(shù) 114
7.8 Python的zip函數(shù) 115
7.9 常見內置函數(shù) 116
7.9.1 與數(shù)學相關的函數(shù) 116
7.9.2 類型轉換函數(shù) 117
7.9.3 相關操作函數(shù) 118
7.10 函數(shù)的應用舉例 119
本章小結 124
練習題 124
實戰(zhàn)作業(yè) 125
第8章 字典 126
8.1 什么是字典 126
8.2 字典的創(chuàng)建和使用 127
8.2.1 直接創(chuàng)建字典 127
8.2.2 通過dict函數(shù)創(chuàng)建字典 128
8.2.3 字典的修改和刪除 128
8.2.4 字典的遍歷 129
8.3 字典的基本操作 130
8.3.1 get函數(shù):訪問字典成員 130
8.3.2 copy函數(shù):返回一個具有相同鍵值的新字典 131
8.3.3 pop函數(shù):刪除字典中對應的鍵和值 132
8.3.4 Fromkeys函數(shù):用給定的鍵建立新的字典 132
8.3.5 setdefault函數(shù):獲取與給定鍵相關聯(lián)的值 132
8.3.6 update函數(shù):用一個字典更新另外一個字典 133
8.3.7 關鍵字in的應用 133
8.4 字典的格式化字符串 134
8.5 字典的排序 135
8.5.1 sorted函數(shù)按key值對字典排序 135
8.5.2 sorted函數(shù)按value值對字典排序 135
8.6 字典的實例應用 136
本章小結 140
練習題 140
實戰(zhàn)作業(yè) 140
第9章 異常和異常處理 142
9.1 錯誤與異!143
9.1.1 語法錯誤 143
9.1.2 異!143
9.2 異常處理 144
9.2.1 異常處理語法 144
9.2.2 常見異常處理示例 145
9.3 拋出異常和自定義異常 146
9.3.1 如何拋出異!146
9.3.2 用戶自定義異!147
本章小結 148
練習題 148
第 10章 圖形用戶界面 151
10.1 豐富的平臺 151
10.2 下載和安裝wxPython 152
10.3 創(chuàng)建示例GUI應用程序 152
10.3.1 Hello World! 152
10.3.2 窗口 154
10.3.3 控件:面板、標簽、菜單欄 154
10.3.4 案例制作:簡易編輯器 157
10.3.5 更智能的布局 159
10.3.6 最基本的Sizer:GridSizer 160
10.3.7 FlexGridSizer 162
10.3.8 GridBagSizer 164
10.3.9 BoxSizer 165
10.3.10 StaticBoxSizer 168
10.3.11 案例制作:用戶收件信息錄入界面 169
10.4 初步了解tkinter 172
本章小結 172
練習題 173
實戰(zhàn)作業(yè) 173
第 11章 面向對象程序設計 174
11.1 面向對象程序設計思想 175
11.1.1 面向對象的基本概念 175
11.1.2 面向對象設計 177
11.2 類和對象 177
11.2.1 創(chuàng)建類 177
11.2.2 創(chuàng)建對象 178
11.3 屬性和數(shù)據(jù) 178
11.3.1 類屬性 178
11.3.2 實例屬性 179
11.3.3 類屬性與實例屬性的聯(lián)系 180
11.3.4 私有屬性與公有屬性 180
11.3.5 自定義屬性 181
11.3.6 self的作用 182
11.4 方法 182
11.4.1 方法的聲明和調用 182
11.4.2 實例方法、類方法和靜態(tài)方法 183
11.4.3 綁定方法和非綁定方法 185
11.4.4 私有方法與公有方法 187
11.4.5 構造方法與析構方法 187
11.4.6 特殊方法 189
11.5 繼承 189
11.5.1 概念 189
11.5.2 單繼承 189
11.5.3 繼承與抽象 190
11.5.4 覆蓋方法 191
11.5.5 多重繼承 192
11.6 多態(tài)和封裝 193
11.6.1 多態(tài)性 193
11.6.2 封裝和私有化 194
11.7 定制類 196
11.8 迭代器 198
11.9 生成器 199
11.10 綜合示例 200
本章小結 202
練習題 202
實戰(zhàn)作業(yè) 203
第 12章 數(shù)據(jù)庫支持 204
12.1 數(shù)據(jù)庫概述 205
12.2 Python數(shù)據(jù)庫編程接口(DB-API) 205
12.2.1 DB-API簡介與統(tǒng)一操作模式 205
12.2.2 模塊接口(Module Interface) 206
12.2.3 Connection對象 207
12.2.4 Cursor游標對象 208
12.3 MySQL關系數(shù)據(jù)庫操作 208
12.3.1 PyMySQL下載與安裝 209
12.3.2 PyMySQL基本操作 209
12.4 SQLite數(shù)據(jù)庫與操作 212
12.4.1 SQLite介紹與安裝 212
12.4.2 SQLite-Python接口及操作 214
本章小結 217
練習題 218
實戰(zhàn)作業(yè) 218
第 13章 程序開發(fā)進階 219
13.1 簡介 220
13.2 分治算法 220
13.3 鳶尾花的分類 221
13.3.1 KNN(K-NearestNeighbor)算法介紹 221
13.3.2 K個最近鄰居 222
13.3.3 構造分類樣本 222
13.4 設計分類算法 223
13.5 詳細設計 224
13.5.1 文件格式 224
13.5.2 存儲格式 225
13.5.3 loadDataset函數(shù) 225
13.5.4 getNeightbors函數(shù) 226
13.5.5 getResponse函數(shù) 228
13.5.6 getAccuracy函數(shù) 229
13.5.7 總體運行 229
13.5.8 不足之處 232
13.6 其他有趣的算法問題 232
13.6.1 乳腺癌分類問題 232
13.6.2 葡萄酒品質分類 234
本章小結 235
練習題 235
實戰(zhàn)作業(yè) 235