Python 3.6零基礎(chǔ)入門與實(shí)戰(zhàn)
定 價(jià):59 元
叢書名:高等學(xué)校計(jì)算機(jī)基礎(chǔ)教育教材精選
- 作者:王啟明 羅從良
- 出版時(shí)間:2018/8/1
- ISBN:9787302509301
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
隨著大數(shù)據(jù)技術(shù)的發(fā)展及Python在人工智能領(lǐng)域的火熱應(yīng)用,Python得到越來越多的應(yīng)用。本書就是在這個(gè)背景下編寫的,是一本Python 3.6入門教材,特別適合想直接切入爬蟲編程及大數(shù)據(jù)分析處理的讀者學(xué)習(xí)使用。本書贈送示例源代碼與教學(xué)視頻。
本書分為16章,主要內(nèi)容包括開發(fā)環(huán)境、數(shù)據(jù)結(jié)構(gòu)、函數(shù)、面向?qū)ο蟆⒍嗑程、模塊、包、GUI模塊、圖形模塊、正則模塊、文件處理模塊、網(wǎng)絡(luò)編程模塊和爬蟲模塊等,并且為每個(gè)模塊提供了實(shí)戰(zhàn)示例,*后用兩章來介紹數(shù)據(jù)庫編程實(shí)戰(zhàn)和爬蟲框架實(shí)戰(zhàn)。
本書內(nèi)容詳盡、示例豐富,適合廣大Python入門讀者和Python開發(fā)人員閱讀,同時(shí)也可作為高等院校和培訓(xùn)學(xué)校計(jì)算機(jī)相關(guān)專業(yè)的師生教學(xué)參考。
Python語言因其具有豐富且強(qiáng)大的庫,以及簡單容易上手的特性,目前幾乎活躍在所有的技術(shù)領(lǐng)域,包括人工智能、大數(shù)據(jù)分析處理、機(jī)器學(xué)習(xí)與深度學(xué)習(xí)、金融量化交易、網(wǎng)絡(luò)開發(fā)、服務(wù)器編程、Web編程、運(yùn)維自動化、物聯(lián)網(wǎng)等領(lǐng)域。越來越多的新人都急切希望找到一本容易上手的Python入門書。本書就能滿足零基礎(chǔ)讀者的Python需求,書中所有的知識點(diǎn)都通過大小示例讓讀者反復(fù)練習(xí),激發(fā)讀者學(xué)習(xí)興趣,快速掌握Python編程技巧,獲得生產(chǎn)力。
前 言
不管你從事的是什么行業(yè),進(jìn)行數(shù)據(jù)分析也好,開發(fā)網(wǎng)頁也好,做數(shù)據(jù)庫后臺編程也好,做股票分析也好,Python都是你必須學(xué)會的一門語言。市場上有很多圖書,隨Python版本的升級會顯得比較舊,講解方式也比較費(fèi)解。本書選擇比較新的Python 3.6.4版本用初學(xué)者容易上手的示例學(xué)習(xí)方法進(jìn)行講解,全書邏輯線索清晰,方便讀者輕松入門。
本書特色
如何快速學(xué)習(xí)Python編程一直是很多初學(xué)者的疑問,網(wǎng)上的資料很多,但不系統(tǒng),很多系統(tǒng)的教程又過于偏重講解,示例較少,讓初學(xué)者很難堅(jiān)持。因此,對于很多入門讀者,更好的方式是先學(xué)習(xí)基礎(chǔ)的Python語法,然后學(xué)習(xí)各種常見模塊,最后在實(shí)踐中完善代碼編寫技巧。學(xué)習(xí)過程中貫穿大小示例,方便讀者對知識點(diǎn)做實(shí)踐,基于這種想法,筆者編寫了本書。本書特色如下:
1. 上手門檻低,完全無基礎(chǔ)也可入門
作為入門圖書,不會涉及計(jì)算機(jī)原理、操作系統(tǒng)等枯燥內(nèi)容,讀者可以沒有這方面的基礎(chǔ),本書提供詳細(xì)的開發(fā)環(huán)境搭建步驟及編程技巧講解,手把手指導(dǎo)讀者入門Python。
2. 多個(gè)操作系統(tǒng)版本介紹,Linux、Windows、MacOS都可以輕松學(xué)習(xí)
當(dāng)前流行的操作系統(tǒng)各異,有些讀者喜歡Linux,有些公司提供MacOS,更多的是常見的Windows,本書很多案例都會提供不同操作系統(tǒng)的介紹,讓讀者了解Python的跨平臺特性,在任何操作系統(tǒng)下都可輕松學(xué)習(xí)。
3. 多個(gè)上手小示例,幾乎每章最后都有應(yīng)用實(shí)戰(zhàn),讓讀者綜合練習(xí),學(xué)完就會
讀者學(xué)會了Python語法,只是了解了如何寫Python代碼,但是如何用Python解決問題卻需要很多項(xiàng)目來練手。本書幾乎每章最后都提供或小或大的實(shí)戰(zhàn)案例,讓讀者既學(xué)會語法也學(xué)會編程。
代碼、教學(xué)視頻下載
本書配套的示例代碼與教學(xué)視頻下載地址可以通過掃描右邊的二維碼獲取。如果下載有問題或閱讀中存在疑問,請聯(lián)系booksaga@163.com,郵件主題為Python3.6零基礎(chǔ)入門與實(shí)戰(zhàn)。
本書讀者
本書適合以下讀者閱讀:
? 沒有學(xué)過編程,但對Python編程感興趣的讀者
? 有計(jì)算機(jī)語言基礎(chǔ),想入門Python編程的讀者
? Python數(shù)據(jù)分析處理入門讀者
? 機(jī)器學(xué)習(xí)入門讀者
? 網(wǎng)絡(luò)爬蟲愛好者
? 初級網(wǎng)絡(luò)管理員
? 企業(yè)網(wǎng)絡(luò)運(yùn)維人員
本書作者
本書由王啟明、羅從良編著,其中第1~8章、第15~16章由平頂山學(xué)院信息工程學(xué)院的王啟明編寫,第9~14章由羅從良編寫,其他參與創(chuàng)作的還有王曉華、劉鑫、陳素清、常新峰、林龍、王亞飛、薛燚、王剛、吳貴文、李雷霆、李一鳴、謝志強(qiáng),排名不分先后。
編者
2018年8月
王啟明,平頂山學(xué)院老師,主講軟件基礎(chǔ)語言C和Python,目前是學(xué)校信息化小組的主要帶頭人,計(jì)算機(jī)教研組組長。長期工作在教學(xué)第一線,承擔(dān)了本科生教學(xué)及畢業(yè)設(shè)計(jì)任務(wù)。C和Python課收到學(xué)生好評。
目 錄
第1章 搭建Python開發(fā)環(huán)境 1
1.1 Python的版本說明 1
1.2 Python的安裝 2
1.2.1 Windows下安裝Python 2
1.2.2 Linux下安裝Python 6
1.3 打開Python的方式 8
1.4 交互模式解釋器 9
1.5 第一個(gè)Python程序Hello World 10
1.5.1 交互式 10
1.5.2 腳本式 10
1.6 Python開發(fā)工具 11
1.6.1 Python自帶集成開發(fā)環(huán)境IDEL 11
1.6.2 安裝PyCharm集成開發(fā)環(huán)境 14
1.6.3 使用PyCharm集成開發(fā)環(huán)境 21
1.7 注意Python的縮進(jìn) 22
第2章 Python中的數(shù)據(jù)與結(jié)構(gòu) 24
2.1 Python中的標(biāo)準(zhǔn)數(shù)據(jù)類型 24
2.2 變量 25
2.3 數(shù)字 26
2.3.1 使用整型 26
2.3.2 使用浮點(diǎn)型 27
2.3.3 使用布爾型 28
2.3.4 使用復(fù)數(shù)型 29
2.4 字符串 29
2.4.1 字符串的單引號、雙引號、三引號 29
2.4.2 字符串的截取 30
2.4.3 字符串的拼接 31
2.4.4 字符串的各種常用運(yùn)算符 32
2.4.5 字符串的轉(zhuǎn)義 33
2.4.6 字符串的格式化符號 34
2.4.7 字符串的內(nèi)置函數(shù) 37
2.5 列表 39
2.5.1 使用列表 39
2.5.2 訪問列表 40
2.5.3 列表常用的內(nèi)置函數(shù) 41
2.5.4 列表排序 43
2.5.5 刪除列表 44
2.5.6 獲取列表中的最大值和最小值 45
2.5.7 列表常用運(yùn)算符 45
2.6 元組 46
2.6.1 使用元組 46
2.6.2 訪問元組 47
2.6.3 元組常用的內(nèi)置函數(shù) 47
2.6.4 刪除元組 48
2.6.5 獲取元組中的最大值和最小值 48
2.6.6 元組常用運(yùn)算符 48
2.6.7 元組與列表的轉(zhuǎn)換 49
2.7 字典 49
2.7.1 使用字典 49
2.7.2 訪問字典 50
2.7.3 字典常用的內(nèi)置函數(shù) 50
2.7.4 刪除字典 52
2.7.5 字典常用運(yùn)算符 53
2.8 集合 53
2.8.1 使用集合 54
2.8.2 集合常用的內(nèi)置函數(shù) 54
2.8.3 集合常用運(yùn)算符(交集、并集、差集、對稱差集) 56
2.9 推導(dǎo)式 57
2.9.1 初識推導(dǎo) 57
2.9.2 嵌套推導(dǎo) 58
2.10 數(shù)據(jù)結(jié)構(gòu)實(shí)戰(zhàn):文本統(tǒng)計(jì)分析 59
2.10.1 文本統(tǒng)計(jì)功能 59
2.10.2 文本比較功能 60
第3章 結(jié)構(gòu)語句 62
3.1 順序、選擇和循環(huán) 62
3.1.1 順序結(jié)構(gòu) 62
3.1.2 選擇結(jié)構(gòu) 63
3.1.3 循環(huán)結(jié)構(gòu) 64
3.2 用if選擇 64
3.2.1 選擇語句格式 65
3.2.2 選擇語句詳解 66
3.2.3 選擇語句的嵌套 66
3.3 用while循環(huán) 67
3.3.1 while語句基本格式 67
3.3.2 while語句的應(yīng)用 68
3.3.3 無限循環(huán)(死循環(huán)) 69
3.3.4 帶else的while循環(huán) 70
3.4 用for循環(huán) 71
3.4.1 for語句基本格式 71
3.4.2 for語句的應(yīng)用 71
3.4.3 for與range結(jié)合遍歷數(shù)字序列 72
3.5 中斷語句break、continue 73
3.5.1 break語句 73
3.5.2 continue語句 74
3.6 循環(huán)實(shí)戰(zhàn):九九乘法表 75
第4章 函數(shù) 77
4.1 使用函數(shù) 77
4.1.1 定義函數(shù) 77
4.1.2 函數(shù)的返回值 78
4.1.3 函數(shù)的嵌套 78
4.2 函數(shù)的參數(shù) 79
4.2.1 形參、實(shí)參 79
4.2.2 必要參數(shù) 79
4.2.3 有默認(rèn)值的參數(shù) 80
4.2.4 關(guān)鍵字參數(shù) 81
4.2.5 不定長參數(shù)(可變參數(shù)) 82
4.2.6 各種參數(shù)組合 83
4.3 全局變量、局部變量 83
4.3.1 全局和局部的概念 83
4.3.2 函數(shù)中局部變量的作用域 84
4.3.3 global全局變量 84
4.4 匿名函數(shù) 85
4.4.1 使用匿名函數(shù) 85
4.4.2 匿名函數(shù)的參數(shù)默認(rèn)值 86
4.5 函數(shù)實(shí)戰(zhàn):八皇后問題 86
第5章 面向?qū)ο缶幊?92
5.1 面向?qū)ο蠡A(chǔ) 92
5.2 定義與使用類 93
5.2.1 類的定義 93
5.2.2 類的構(gòu)造方法和析構(gòu)方法 94
5.2.3 類的私有屬性 95
5.2.4 類的私有方法 96
5.2.5 一個(gè)完整的類 96
5.3 類與類的關(guān)系 97
5.3.1 單繼承 98
5.3.2 多繼承 99
5.3.3 類的關(guān)聯(lián)和依賴 99
5.3.4 類的聚合和復(fù)合 101
5.4 重寫 102
5.5 魔術(shù)方法 102
5.5.1 魔術(shù)方法的概念 102
5.5.2 魔術(shù)方法的應(yīng)用 103
5.6 迭代器 106
5.7 生成器 107
5.7.1 生成器的概念 107
5.7.2 生成器的應(yīng)用 107
5.8 裝飾器 108
5.8.1 裝飾器基礎(chǔ) 108
5.8.2 不帶參數(shù)的裝飾器 109
5.8.3 帶參數(shù)的裝飾器 110
5.8.4 多個(gè)裝飾器裝飾一個(gè)函數(shù) 111
5.9 上下文管理器與with語句 112
5.9.1 上下文管理器的幾個(gè)概念 112
5.9.2 上下文管理器的應(yīng)用 113
5.9.3 自定義上下文管理器 113
5.10 面向?qū)ο髮?shí)戰(zhàn):數(shù)字圖形 114
5.10.1 需求分析 114
5.10.2 程序開發(fā) 118
5.10.3 程序入口 123
第6章 程序異常與調(diào)試 124
6.1 識別異常 124
6.1.1 異常的概念 124
6.1.2 語法引出的異常 125
6.1.3 運(yùn)行時(shí)引出的異常 125
6.1.4 分析異常提示信息 125
6.2 Python中處理異常的語法 126
6.3 處理異常的細(xì)節(jié) 127
6.3.1 except語句的多種形式 127
6.3.2 拋出異常(引發(fā)異常)raise 130
6.4 自定義異常 130
6.5 調(diào)試程序 131
6.5.1 IDLE的簡單調(diào)試 131
6.5.2 利用日志模塊logging調(diào)試 132
6.5.3 利用pdb調(diào)試 133
6.6 異常實(shí)戰(zhàn):計(jì)算機(jī)猜數(shù) 135
6.6.1 需求分析 135
6.6.2 算法分析 136
6.6.3 編程實(shí)現(xiàn) 138
6.6.4 異常處理 141
6.6.5 異常類定義 141
6.6.6 拋出和捕獲異常 142
第7章 多線程 145
7.1 線程的概念 145
7.2 創(chuàng)建多線程 146
7.2.1 通過threading.Thread()創(chuàng)建線程 146
7.2.2 通過繼承threading.Thread類創(chuàng)建線程 147
7.3 主 線 程 148
7.4 阻塞線程 149
7.5 判斷線程是否是活動的 150
7.6 線程同步 152
7.6.1 同步的概念 152
7.6.2 Python中的鎖 153
7.6.3 Python中的條件鎖 153
第8章 模塊和包 157
8.1 模塊 157
8.1.1 標(biāo)準(zhǔn)庫中的模塊 157
8.1.2 查看模塊的代碼 158
8.2 導(dǎo)入模塊 160
8.2.1 最簡單的導(dǎo)入 160
8.2.2 from…import語句 161
8.2.3 from…import *語句 162
8.2.4 導(dǎo)入自定義的模塊 162
8.3 包 163
8.3.1 包和模塊的區(qū)別 163
8.3.2 包的結(jié)構(gòu) 164
8.3.3 導(dǎo)入自定義的包 164
8.4 命名空間 165
8.4.1 命名空間 166
8.4.2 全局命名空間 167
8.4.3 局部命名空間 168
8.4.4 命名空間和類 169
8.4.5 命名空間和類的實(shí)例化 170
8.4.6 命名空間和類的繼承 172
第9章 Tkinter模塊圖形界面編程 174
9.1 Tkinter模塊 174
9.1.1 Tkinter模塊的Hello World 程序 175
9.1.2 tkinter包介紹 177
9.1.3 主窗口 178
9.2 Tkinter控件 179
9.2.1 控件的介紹 179
9.2.2 控件的特性 181
9.2.3 Tkinter幾何管理器 182
9.2.4 Tkinter 事件及回調(diào) 185
9.3 Tkinter實(shí)戰(zhàn) 186
9.3.1 創(chuàng)建主窗口 186
9.3.2 添加菜單欄及菜單選項(xiàng) 186
9.3.3 添加下拉菜單 188
9.3.4 實(shí)現(xiàn)簡單記事本 190
第10章 re模塊正則表達(dá)式 193
10.1 正則表達(dá)式簡介 193
10.1.1 正則表達(dá)式概念 193
10.1.2 正則表達(dá)式構(gòu)成 194
10.2 re模塊的簡單應(yīng)用 196
10.3 常用正則表達(dá)式 199
10.3.1 常用數(shù)字表達(dá)式的校驗(yàn) 200
10.3.2 常用字符表達(dá)式的校驗(yàn) 202
10.3.3 特殊需求表達(dá)式的校驗(yàn) 203
第11章 os模塊與shutil模塊文件處理 206
11.1 os模塊 206
11.1.1 獲取系統(tǒng)類型 206
11.1.2 獲取系統(tǒng)環(huán)境 207
11.1.3 執(zhí)行系統(tǒng)命令 208
11.1.4 操作目錄及文件 209
11.2 shutil模塊 214
11.2.1 復(fù)制文件 214
11.2.2 移動文件 216
11.2.3 讀取壓縮及歸檔壓縮文件 216
11.2.4 解壓文件 217
11.3 文件處理實(shí)戰(zhàn) 217
第12章 PIL(Pillow)模塊圖像實(shí)戰(zhàn) 220
12.1 Pillow庫簡介與安裝 220
12.1.1 Pillow庫的介紹 221
12.1.2 Pillow庫的安裝 221
12.2 Image類的使用 222
12.2.1 Image類的屬性 222
12.2.2 Image類的函數(shù) 223
12.3 圖像的基本合成 231
12.3.1 調(diào)用Image.composite接口 231
12.3.2 調(diào)用Image.blend接口 232
12.3.3 調(diào)用Image.paste接口 232
12.4 圖像的變換 233
12.4.1 圖像格式及尺寸變換 233
12.4.2 圖像通道變換 234
12.4.3 圖像幾何變換 235
12.4.4 圖像變換成OpenCV格式 235
12.5 圖像處理實(shí)戰(zhàn) 236
第13章 socket模塊網(wǎng)絡(luò)編程 237
13.1 網(wǎng)絡(luò)編程基礎(chǔ) 237
13.1.1 網(wǎng)絡(luò)協(xié)議 237
13.1.2 IP地址與端口 239
13.1.3 socket 240
13.2 使用TCP的服務(wù)器與客戶端 246
13.2.1 TCP工作原理 246
13.2.2 TCP服務(wù)器的實(shí)現(xiàn) 247
13.2.3 TCP客戶端的實(shí)現(xiàn) 248
13.3 使用UDP的服務(wù)器與客戶端 250
13.3.1 UDP工作原理 251
13.3.2 UDP服務(wù)器的實(shí)現(xiàn) 251
13.3.3 UDP客戶端的實(shí)現(xiàn) 252
13.4 網(wǎng)絡(luò)編程實(shí)戰(zhàn) 253
第14章 urllib工具包網(wǎng)絡(luò)爬蟲編程 257
14.1 urllib、urllib2與urllib3的異同 257
14.2 request模塊 259
14.2.1 urlopen()、build_opener()和build_opener()方法 260
14.2.2 Request類 263
14.2.3 其他類 266
14.3 error模塊 267
14.4 parse模塊 268
14.4.1 URL解析 268
14.4.2 URL轉(zhuǎn)義 271
14.5 robotparser模塊 274
14.6 urllib網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn) 275
第15章 Python數(shù)據(jù)庫編程實(shí)戰(zhàn) 278
15.1 操作SQLite 278
15.1.1 創(chuàng)建SQLite數(shù)據(jù)庫 278
15.1.2 創(chuàng)建SQLite數(shù)據(jù)表 279
15.1.3 為數(shù)據(jù)表添加數(shù)據(jù) 280
15.1.4 查詢數(shù)據(jù) 280
15.1.5 更新數(shù)據(jù) 281
15.1.6 刪除數(shù)據(jù) 281
15.1.7 connect和cursor的各種函數(shù) 281
15.2 操作MySQL 282
15.2.1 安裝PyMySQL庫 282
15.2.2 連接MySQL數(shù)據(jù)庫 283
15.2.3 增、刪、查、改數(shù)據(jù) 284
15.3 使用ORM框架SQLAlchemy操作MySQL 284
15.3.1 ORM的意義 285
15.3.2 安裝SQLAlchemy 285
15.3.3 導(dǎo)入SQLAlchemy 286
15.3.4 使用SQLAlchemy操作數(shù)據(jù)庫 286
第16章 Scrapy爬蟲實(shí)戰(zhàn) 288
16.1 安裝Scrapy 288
16.1.1 Windows下安裝Scrapy環(huán)境 288
16.1.2 Linux下安裝Scrapy 289
16.1.3 vim編輯器 290
16.2 Scrapy選擇器XPath和CSS 291
16.2.1 XPath選擇器 291
16.2.2 CSS選擇器 294
16.2.3 其他選擇器 295
16.3 天氣預(yù)報(bào)項(xiàng)目 296
16.3.1 項(xiàng)目準(zhǔn)備 296
16.3.2 創(chuàng)建編輯Scrapy爬蟲 297
16.3.3 數(shù)據(jù)存儲到j(luò)son 303
16.3.4 數(shù)據(jù)存儲到MySQL 305