本書是面向初學者的Python入門書,強調基礎知識,兼顧實踐應用。 基礎篇介紹Python程序設計的入門知識,共12章,重點包括:Python介紹、安裝和運行;Python的基本概念(對象、數據類型、變量、表達式、內置函數);輸入和輸出;程序設計的基本結構;函數和類;序列操作(列表、元組、集合、字典);字符串;正則表達式;文件讀寫;目錄與文件操作;常用標準庫。排錯篇總結初學者常遇到的錯誤并介紹程序調試方法,包含2章:Python錯誤類型、Python代碼調試。 本書為讀者提供完整的教學資料包。作為學習的完整架構,與本書內容相關的文本篇和應用篇以電子出版物形式出版。 本書適合作為高等院校文科類各專業(yè)學生學習Python和大數據應用的教材,也可供相關從業(yè)人員學習參考。
胡鳳國,男,中國傳媒大學副教授,中國中文信息處理學會會員,省部級項目面向語言監(jiān)測的漢語自動分詞標注系統(tǒng)研究負責人,國社科項目計算語言學方法研究成員,漢語復雜網絡研究成員。
目 錄
第一篇 基礎篇
第1章 Python介紹 2
1.1 什么是Python 2
1.1.1 有一種編程語言叫Python 2
1.1.2 Python的發(fā)展史 3
1.1.3 Python的版本選擇 3
1.2 為什么要學習Python 5
1.2.1 為什么要學編程 5
1.2.2 學編程為什么選Python 6
1.3 怎樣學習Python 7
第2章 Python的安裝和運行 9
2.1 安裝Python軟件 9
2.1.1 軟件下載 9
2.1.2 安裝 11
2.1.3 測試 15
2.2 運行Python代碼 19
2.2.1 交互式運行 19
2.2.2 腳本式運行 21
2.2.3 命令行運行 23
2.2.4 擴展式運行 25
2.2.5 運行Python代碼的誤區(qū) 25
2.2.6 合法的Python語句 25
2.3 Python代碼書寫規(guī)范 28
2.4 Python擴展庫和標準庫 32
2.4.1 擴展庫的安裝 32
2.4.2 標準庫和擴展庫的使用 37
第3章 Python的基本概念 40
3.1 數據和數據類型 40
3.1.1 數據與對象 40
3.1.2 數據類型 41
3.2 變量與關鍵字 52
3.2.1 對象的存儲 52
3.2.2 變量 52
3.2.3 關鍵字 56
3.3 運算符和表達式 57
3.3.1 常量數據和變量數據 57
3.3.2 運算符 57
3.3.3 表達式 70
3.4 內置函數和內置對象 72
3.4.1 內置函數 72
3.4.2 內置對象 81
思考題 86
第4章 輸入和輸出 87
4.1 數據輸入 87
4.1.1 獲取輸入數據 87
4.1.2 轉換輸入數據 87
4.1.3 處理輸入錯誤 89
4.2 數據輸出 91
4.2.1 最簡單的數據輸出 92
4.2.2 數據格式化 98
4.3 綜合舉例 103
4.3.1 十進制轉二進制(一) 103
4.3.2 雞兔同籠(一) 103
4.3.3 韓信點兵(一) 104
4.3.4 換酒問題(一) 104
4.3.5 最大公約數(一) 105
4.3.6 交換兩個變量的值 106
思考題 106
第5章 基本程序結構 109
5.1 結構化程序設計 109
5.1.1 順序結構 109
5.1.2 選擇結構 110
5.1.3 循環(huán)結構 110
5.1.4 結構嵌套 111
5.2 順序結構 112
5.2.1 順序結構舉例 113
5.2.2 順序結構的拼接 113
5.3 選擇結構 114
5.3.1 單分支選擇結構 115
5.3.2 雙分支選擇結構 115
5.3.3 多分支選擇結構 116
5.3.4 選擇結構的嵌套 118
5.3.5 條件表達式 120
5.3.6 選擇結構的多樣性 121
5.4 循環(huán)結構 123
5.4.1 while循環(huán) 123
5.4.2 for 循環(huán) 125
5.4.3 continue語句 126
5.4.4 break語句 127
5.4.5 循環(huán)結構中的else子句 127
5.5 循環(huán)結構的嵌套 129
5.6 綜合舉例 130
5.6.1 十進制轉二進制(二) 130
5.6.2 雞兔同籠(二) 131
5.6.3 韓信點兵(二) 132
5.6.4 換酒問題(二) 132
5.6.5 最大公約數(二) 132
5.6.6 百錢百雞 135
5.6.7 兔子數列 135
5.6.8 奇數幻方 136
5.6.9 哥德巴赫猜想(一) 138
5.6.10 信息加密(一) 139
5.6.11 求圓周率 139
5.6.12 海龜畫圖 142
思考題 152
第6章 函數和類 159
6.1 使用函數的好處 159
6.2 函數的定義和調用 160
6.2.1 函數的定義 160
6.2.2 函數的調用 160
6.2.3 關于函數返回值的注意事項 162
6.3 函數參數的傳遞與接收 163
6.3.1 函數參數的傳遞方式 163
6.3.2 函數形參接收實參的形式 165
6.4 函數中的局部變量和全局變量 166
6.5 lambda表達式 167
6.6 生成器函數 169
6.7 自定義函數庫 170
6.8 遞歸函數 172
6.8.1 什么是遞歸函數 172
6.8.2 遞歸函數和算法 173
6.8.3 Python中的最大遞歸次數 175
6.8.4 遞歸函數舉例 175
6.8.5 遞歸與循環(huán)的關系 182
6.8.6 遞歸函數的時間效率 182
6.9 類和對象 184
6.9.1 類和對象的概念 184
6.9.2 類的定義和使用示例 184
思考題 185
第7章 Python的序列操作 188
7.1 序列結構 188
7.2 列表及其操作 189
7.2.1 列表的標準形式 189
7.2.2 列表對象的創(chuàng)建和刪除 190
7.2.3 列表元素的讀取、修改和刪除 190
7.2.4 列表對象常用的方法 191
7.2.5 用內置函數對列表進行操作 195
7.2.6 用運算符對列表進行運算 197
7.2.7 列表推導式 199
7.3 元組及其操作 200
7.3.1 元組的概念 200
7.3.2 元組的標準形式 201
7.3.3 元組對象的創(chuàng)建 201
7.3.4 元組元素的讀取 201
7.3.5 元組對象常用的方法 202
7.3.6 用內置函數對元組進行操作 202
7.3.7 用運算符對元組進行運算 202
7.3.8 生成器推導式 203
7.4 字典及其操作 203
7.4.1 字典的標準形式 203
7.4.2 字典的創(chuàng)建 204
7.4.3 字典元素的添加和修改 204
7.4.4 字典元素的讀取 205
7.4.5 字典元素的刪除 206
7.4.6 字典對象常用的方法 207
7.4.7 用內置函數對字典進行操作 207
7.4.8 用運算符對字典進行運算 209
7.5 集合及其操作 209
7.5.1 集合的標準形式 209
7.5.2 集合的創(chuàng)建 210
7.5.3 集合元素的添加 210
7.5.4 集合元素的刪除 210
7.5.5 集合元素的讀取 211
7.5.6 集合對象常用的方法 211
7.5.7 用內置函數對集合進行操作 211
7.5.8 用運算符對集合進行運算 212
7.6 切片 212
7.6.1 切片的格式 213
7.6.2 用切片對列表的元素進行增刪改 214
7.7 NumPy和Pandas擴展庫的簡單操作 214
7.7.1 NumPy擴展庫 214
7.7.2 Pandas擴展庫 217
7.8 序列類對象的通用操作總結 220
7.9 綜合舉例 221
7.9.1 判斷列表中有無重復元素 221
7.9.2 百分制轉五分制 222
7.9.3 中文星期名稱轉英文星期名稱 222
7.9.4 判斷某年某月有幾天 223
7.9.5 求兩個可迭代對象的笛卡爾積 223
7.9.6 查找列表中最小元素的所有位置 224
7.9.7 查找N以內的所有素數 224
7.9.8 年份生肖(一) 226
7.9.9 農村小孩的乳名(一) 227
7.9.10 天干地支順序配對(一) 228
7.9.11 判斷黑洞數(一) 229
7.9.12 哥德巴赫猜想(二) 230
7.9.13 信息加密(二) 231
思考題 232
第8章 字符串 234
8.1 字符串的表示 234
8.1.1 字符串界定符 234
8.1.2 轉義字符 235
8.1.3 原始字符串 236
8.1.4 字符串和字符的區(qū)分 236
8.1.5 字符串的標準形式 237
8.1.6 長字符串的表示方法 237
8.1.7 三引號注釋 238
8.2 字符串的操作 238
8.2.1 Python關于對象的通用操作 238
8.2.2 關于序列類對象的通用操作 238
8.2.3 關于有序序列類對象的通用操作 239
8.2.4 關于元素可比較的有序序列類對象的通用操作 240
8.2.5 針對字符串對象的其他操作 240
8.3 字符串方法 240
8.3.1 格式化類的方法 241
8.3.2 排版類的方法 241
8.3.3 類型判斷類的方法 242
8.3.4 查找類的方法 243
8.3.5 統(tǒng)計類的方法 244
8.3.6 首尾匹配類的方法 244
8.3.7 分割類的方法 244
8.3.8 合并類的方法 246
8.3.9 大小寫轉換類的方法 246
8.3.10 削邊類的方法 247
8.3.11 替換類的方法 247
8.3.12 編碼解碼類方法 248
8.4 字詞統(tǒng)計和中文分詞 249
8.4.1 字符統(tǒng)計 249
8.4.2 詞語統(tǒng)計 251
8.4.3 中文自動分詞和詞性標注 253
8.5 綜合舉例 254
8.5.1 屏蔽敏感詞 254
8.5.2 年份生肖(二) 255
8.5.3 農村小孩的乳名(二) 255
8.5.4 天干地支順序配對(二) 255
8.5.5 判斷黑洞數(二) 256
8.5.6 哥德巴赫猜想(三) 256
8.5.7 信息加密(三) 256
8.5.8 公民身份號碼 257
8.5.9 十進制轉任意進制 260
思考題 261
第9章 正則表達式 263
9.1 什么是正則表達式 263
9.2 正則表達式的語法 264
9.2.1 萬能符 265
9.2.2 轉義符 265
9.2.3 元字符 266
9.2.4 選字符 267
9.2.5 連字符 267
9.2.6 脫字符 268
9.2.7 簡寫符 268
9.2.8 選串符 269
9.2.9 定位符 269
9.2.10 分組符 270
9.2.11 數量符 270
9.2.12 非貪婪匹配標識符 270
9.2.13 子表達式 271
9.2.14 預查 272
9.2.15 命名子表達式 273
9.3 在Python中使用正則表達式 273
9.3.1 re.findall函數 274
9.3.2 re.match函數 277
9.3.3 re.search函數 278
9.3.4 re.split函數 279
9.3.5 re.sub和re.subn函數 280
9.3.6 re.escape函數 280
9.3.7 re.compile函數 281
9.4 綜合舉例 282
思考題 285
第10章 文件讀寫 287
10.1 文件簡介 287
10.2 內置函數open 288
10.2.1 open函數的參數介紹 288
10.2.2 open函數的mode參數詳解 288
10.2.3 文件對象的方法 289
10.3 文本文件的讀寫 290
10.3.1 從文本文件讀取數據 290
10.3.2 將數據寫入文本文件 291
10.3.3 用上下文管理語句with來管理文本文件讀寫 292
10.4 JSON文件的讀寫 292
10.5 CSV文件的讀寫 293
10.6 二進制文件的讀寫 296
思考題 296
第11章 目錄與文件操作 298
11.1 文件和目錄 298
11.1.1 驅動器 298
11.1.2 目錄、文件夾、路徑 298
11.1.3 目錄名和文件名的命名規(guī)范 299
11.1.4 當前目錄 299
11.1.5 環(huán)境變量 300
11.1.6 絕對路徑和相對路徑 300
11.1.7 可執(zhí)行程序和應用程序 301
11.1.8 默認應用程序 301
11.2 文件目錄操作的有關標準庫介紹 302
11.2.1 os.path標準庫介紹 302
11.2.2 os標準庫介紹 305
11.2.3 shutil標準庫的常用函數介紹 314
11.3 文件目錄操作需要考慮的因素 315
11.4 文件目錄操作 316
11.4.1 無讀取寫入文件 317
11.4.2 讀取文件無寫入 317
11.4.3 無讀取寫入目錄 318
11.4.4 讀取目錄無寫入 318
11.4.5 讀取文件寫入文件 319
11.4.6 讀取文件寫入目錄 320
11.4.7 讀取目錄寫入文件 320
11.4.8 讀取目錄寫入目錄 321
思考題 324
第12章 常用的Python標準庫 325
12.1 collections標準庫 325
12.2 copy標準庫 327
12.3 decimal標準庫 327
12.4 fractions標準庫 328
12.5 functools標準庫 329
12.6 itertools標準庫 330
12.6.1 combinations對象 330
12.6.2 permutations對象 331
12.6.3 product對象 331
12.7 math標準庫 333
12.8 random標準庫 333
12.8.1 choice函數 334
12.8.2 randint函數 334
12.8.3 random函數 334
12.8.4 randrange函數 334
12.8.5 sample函數 335
12.8.6 shuffle函數 335
12.8.7 uniform函數 336
12.8.8 應用示例 336
12.9 sys標準庫 337
12.9.1 獲取Python解釋器的位置 337
12.9.2 添加擴展庫搜索目錄 338
12.9.3 終止運行Python程序 338
12.9.4 獲取命令行參數 339
12.10 tempfile標準庫 342
12.10.1 功能介紹 342
12.10.2 應用示例 344
12.11 time標準庫 344
12.11.1 有關概念 344
12.11.2 函數介紹 345
12.11.3 應用示例 346
12.12 datetime標準庫 349
12.12.1 datetime標準庫定義的常用類 349
12.12.2 應用示例 353
思考題 353
第二篇 排錯篇
第13章 常見錯誤類型 356
13.1 編碼錯誤 356
13.2 縮進錯誤 357
13.2.1 不當縮進錯誤 357
13.2.2 混用制表符和空格 358
13.3 語法錯誤 358
13.3.1 混淆大小寫 358
13.3.2 混淆全半角 359
13.3.3 寫錯關鍵詞 359
13.3.4 括號不配對 360
13.3.5 用三引號注釋代碼塊引起語法錯誤 360
13.3.6 其他語法錯誤 361
13.4 運行錯誤 361
13.4.1 數學運算錯誤 361
13.4.2 數據類型錯誤 361
13.4.3 下標越界錯誤 362
13.4.4 文本文件編碼錯誤 363
13.4.5 擴展庫出錯 364
13.4.6 計算機配置環(huán)境出錯 365
13.5 邏輯錯誤 367
13.5.1 循環(huán)終值設定有問題 367
13.5.2 不同用途的變量同名 367
13.5.3 不該變的變量值被改變 368
13.5.4 語句縮進層次不清 368
13.5.5 混淆運算符的優(yōu)先級 368
13.5.6 列表賦值錯誤 369
13.5.7 調用對象的方法不加括號 370
13.5.8 算法錯誤 370
第14章 代碼調試 371
14.1 輸出對比法 371
14.2 IDLE調試法 373
14.3 裝飾器方法 375
附錄A 環(huán)境變量設置 378
附錄B 常用Python語句 383
附錄C 常用Python運算符 384
附錄D 內置函數format 385
附錄E %格式化方法 387
附錄F 不能顯示的四字節(jié)漢字 389
附錄G PyPDF2的BUG及解決方案 391
參考文獻 393