相關主題
商品描述
本書主要面向Python初級用戶,本著能懂、夠用的原則,循序漸進,逐步揭示Python編程的核心語法與編程思想。主要知識點包括Python編程環境的搭建與配置、常用的數據類型、判斷和循環語句、異常處理、函數的使用、文件操作、面向對象編程的用法、數據庫操作、正則表達式、並行處理等。本書中包含豐富的代碼案例,結合知識點進行講解,力求做到讓讀者既掌握了語法,又學會了應用;另外,本書精講編程思路。掌握Python語法並不難,初學者往往“看得懂別人的代碼,但是自己寫的時候又無從下手”,這是因為缺少編程思路,本書將帶讀者一起體驗程序從構思到實現的過程。本書作者具有多年教學經驗,深知新手入門學習過程中的疑惑。本書將盡量為讀者答疑解惑,既講理論,又有實踐和思路。同時,本書將使用通俗的語言和生活中的案例解釋專業術語,保證讀者能看懂,又不失專業性。
作者簡介
張志剛
達內集團雲計算教研部總監級講師。
持有RHCA(紅帽認證架構師)、RHCDS(紅帽認證數據中心專家)、RHCI(紅帽官fang授權講師)、MCT(微軟官fang授權講師)等多種國際IT認證證書。
在北京從業10餘年,精通Linux操作系統,熟悉Linux平台下各種服務與架構(如Ansible、Kuberes等)的配置與管理。擅長Linux系統下Python編程,具有多年Python編程授課經驗。
目錄大綱
第1章 管中窺豹 1
1.1 獲取Python程序包 2
1.2 安裝Python 2
1.2.1 源碼包安裝方式 2
1.2.2 二進制rpm包安裝方式 3
1.3 配置IDE 4
1.4 運行Python代碼的方式 12
1.4.1 使用交互式解釋器 12
1.4.2 使用Python腳本 13
1.5 輸入/輸出 13
1.5.1 使用print語句輸出內容到屏幕終端 13
1.5.2 使用input內建函數獲取用戶的鍵盤輸入 15
1.6 註釋及文檔字符串 16
1.6.1 通過註釋為程序添加功能說明 16
1.6.2 使用文檔字符串添加幫助信息 17
1.7 變量 19
1.7.1 變量定義的要求及推薦的命名方法 19
1.7.2 變量賦值 20
1.7.3 變量類型 22
1.8 語法結構 23
1.8.1 使用4個空格實現語句塊縮進 23
1.8.2 使用續行符將一行代碼分解到多行 23
1.8.3 使用分號將多行語句書寫到同一行 24
1.8.4 配置Python交互解釋器支持按Tab鍵補全 24
第2章 魔力數據 25
2.1 數字類型 26
2.1.1 基本數字類型 26
2.1.2 不同進制的整數數字表示方式 26
2.1.3 算術運算符 27
2.1.4 比較運算符 28
2.1.5 邏輯運算符 28
2.2 字符串 30
2.2.1 常用的定義字符串的方式 30
2.2.2 通過字符串切片獲取字符或子串 31
2.2.3 字符串的拼接與重複 33
2.2.4 字符串成員關係判斷 33
2.2.5 字符串方法 34
2.2.6 字符串格式化方法 37
2.2.7 利用原始字符串表達字面本身的含義 38
2.3 列表 39
2.3.1 定義列表 39
2.3.2 列表切片 40
2.3.3 列表方法 40
2.4 元組 43
2.4.1 定義元組 43
2.4.2 單元素元組注意事項 43
2.5 字典 44
2.5.1 定義字典 44
2.5.2 更新字典內容 44
2.5.3 字典方法 44
2.6 數據類型比較 46
2.6.1 數據存儲模型 47
2.6.2 數據更新模型 47
2.6.3 數據訪問模型 50
2.7 相關操作 50
2.7.1 獲取對象“長度” 50
2.7.2 成員關係判定 51
第3章 方圓之規 52
3.1 判斷語句 53
3.1.1 if基本判斷語句 53
3.1.2 if-else擴展判斷語句 54
3.1.3 if-elif-else多分支判斷語句 55
3.1.4 利用條件表達式簡化判斷語句 56
3.1.5 應用案例:根據分數進行成績分級 57
3.1.6 應用案例:編寫石頭剪刀佈人機交互小遊戲 59
3.2 while循環語句 63
3.2.1 基礎語法結構 63
3.2.2 應用案例:從1累加到100 63
3.2.3 應用案例:猜數 64
3.2.4 應用案例:三局兩勝的石頭剪刀布遊戲 65
3.2.5 通過break語句中斷循環 66
3.2.6 通過continue語句跳過本次循環 67
3.2.7 應用案例:計算100以內所有的偶數之和 67
3.2.8 循環正常結束後執行else語句中的代碼 68
3.2.9 應用案例:有限次數的猜數 69
3.3 for循環語句 70
3.3.1 基礎語法結構 70
3.3.2 通過range函數生成數字 71
3.4 列表解析 73
3.5 常用內建函數 74
3.6 綜合運用 76
3.6.1 應用案例:九九乘法表 76
3.6.2 應用案例:斐波那契數列 78
3.6.3 應用案例:提取字符串 79
3.6.4 應用案例:為密碼或驗證碼生成字符串 80
第4章 亡羊補牢 84
4.1 異常的基本概念 85
4.2 檢測和處理異常 86
4.2.1 基礎語法結構 86
4.2.2 利用異常參數保存異常原因 88
4.2.3 異常的else子句 89
4.2.4 finally子句 91
4.3 觸發異常 91
4.3.1 利用raise語句主動觸發異常 92
4.3.2 利用assert語句觸發斷言異常 92
第5章 重複利用 93
5.1 函數基礎 94
5.1.1 函數的基本概念 94
5.1.2 調用函數 94
5.1.3 把函數的執行結果通過return返回 96
5.1.4 通過參數向函數傳遞需要處理的數據 99
5.1.5 位置參數 100
5.1.6 應用案例:改寫生成字符串的代碼 101
5.1.7 提供默認值的默認參數 103
5.2 模塊基礎 104
5.2.1 模塊的基本概念 104
5.2.2 導入模塊的常用方法 104
5.2.3 執行模塊導入時的搜索路徑 105
5.2.4 模塊的導入特性 106
5.2.5 模塊結構和代碼佈局 108
5.2.6 應用案例:模擬用戶登錄系統 109
5.3 函數進階 114
5.3.1 變量作用域 114
5.3.2 參數注意事項 116
5.3.3 個數未知的參數 118
5.3.4 應用案例:簡單的數學小遊戲 120
5.3.5 lambda匿名函數 123
5.3.6 利用偏函數改造現有函數 126
5.3.7 遞歸函數 127
5.3.8 應用案例:遞歸列出目錄內容 128
5.3.9 應用案例:快速排序 130
5.3.10 特殊函數:生成器 131
5.3.11 函數高級用法:閉包和裝飾器 132
5.3.12 應用案例:計算函數運行時間 138
第6章 文件操作 141
6.1 文件操作基礎 142
6.1.1 打開模式 142
6.1.2 讀取文本文件的常用方法 143
6.1.3 應用案例:文件生成器 146
6.1.4 將字符串寫入文件 147
6.1.5 非文本文件讀寫操作 148
6.1.6 通過with關鍵字打開文件 149
6.1.7 應用案例:複製文件 149
6.1.8 通過seek方法移動文件指針 151
6.1.9 應用案例:unix2dos 153
6.1.10 應用案例:進度條動畫 154
6.2 字符編碼 155
6.3 time模塊 158
6.3.1 time模塊的常用方法 158
6.3.2 應用案例:根據時間取出文件內容 160
6.4 datetime模塊 163
6.4.1 datetime模塊的常用方法 163
6.4.2 應用案例:根據時間取出文件內容 164
6.5 pickle模塊 165
6.5.1 pickle模塊應用 165
6.5.2 應用案例:記賬 166
6.6 shutil模塊 170
6.7 os模塊 172
6.8 hashlib模塊 175
6.8.1 hashlib模塊的使用方法 175
6.8.2 應用案例:計算文件的md5值 176
6.9 tarfile模塊 177
6.9.1 tarfile模塊的使用方法 177
6.9.2 應用案例:備份程序 178
第7章 面向對象 186
7.1 OOP基礎 187
7.2 OOP常用編程方式之組合 190
7.3 OOP常用編程方式之繼承 191
7.4 多重繼承 193
7.5 “魔法”方法 195
第8章 數據倉庫 197
8.1 案例需求分析 198
8.2 安裝非標準模塊的方法 200
8.3 通過PyMySQL模塊操作MySQL數據庫 200
8.4 通過SQLAlchemy操作關係型數據庫 205
8.4.1 ORM 206
8.4.2 SQLAlchemy核心應用 207
8.4.3 SQLAlchemy操作數據 211
8.5 SQLite文件型數據庫 220
第9章 正則表達 224
9.1 正則表達式與模式匹配 225
9.2 正則表達式的元字符 226
9.2.1 匹配單個字符 226
9.2.2 匹配一組字符 228
9.2.3 其他常用元字符 230
9.3 re模塊 230
9.3.1 re模塊的常用方法 230
9.3.2 應用案例:分析Web服務器的訪問日誌 232
第10章 並行處理 240
10.1 單進程單線程程序 241
10.2 通過os.fork實現多進程編程 243
10.2.1 多進程編程基礎 244
10.2.2 應用案例:多進程ping 247
10.3 多線程和threading模塊 248
10.3.1 多線程編程基礎 249
10.3.2 應用案例:多線程ping 250
10.4 通過Paramiko模塊實現服務器遠程管理 251
10.4.1 Paramiko應用基礎 251
10.4.2 應用案例:服務器批量管理 253
第11章 網絡互聯 256
11.1 Socket模塊 257
11.1.1 TCP服務器 258
11.1.2 應用案例:多線程TCP服務器 262
11.1.3 TCP客戶端編程 264
11.1.4 UDP服務器編程 265
11.1.5 UDP客戶端編程 267
11.2 urllib模塊 268
11.2.1 urllib.request模塊 268
11.2.2 urllib.error模塊 271
11.2.3 應用案例:爬取圖片 272
11.3 通過requests模塊實現網絡編程 274
11.3.1 JSON輕量級數據交換格式 274
11.3.2 requests.get方法 276
11.3.3 requests.post方法 279