從零開始:Python基礎(chǔ)培訓(xùn)教程
本書是指導(dǎo)零基礎(chǔ)人員學(xué)習(xí)并運(yùn)用 Python 進(jìn)行編程的實用工具書,在編寫過程中充分考慮了讀者的理解能力和程序在生活中的應(yīng)用場景,以基礎(chǔ)語法與應(yīng)用相結(jié)合作為一條主線來進(jìn)行講解,講敘內(nèi)容循序漸進(jìn),案例豐富翔實,并且全部來源于實際工作開發(fā)中。
本書分為入門篇、進(jìn)階篇和高級篇。入門篇注重基礎(chǔ)知識的夯實,全方面說明語法的使用規(guī)則和實例,并進(jìn)行系統(tǒng)性的分析,從而激發(fā)讀者對編程語言的思考,拓展其編寫能力。進(jìn)階篇概述了面向?qū)ο蟮木幊趟枷,并詳?xì)說明了面向?qū)ο缶哂蟹庋b、繼承、多態(tài)的特點。通過基礎(chǔ)語法的集成實現(xiàn)隊列(Queue)、棧(Stack)的數(shù)據(jù)結(jié)構(gòu),它們在程序運(yùn)行中占據(jù)著非常重要位置。然后通過一定的邏輯處理關(guān)系集成語法實現(xiàn)冒泡、選擇等多種排序算法來滿足讀者對于算法的好奇心。最后涉及的進(jìn)程和線程等內(nèi)容,可以作為高并發(fā)優(yōu)化方案。高級篇通過網(wǎng)絡(luò)編程實現(xiàn)本地與網(wǎng)絡(luò)的連接通道,以及網(wǎng)絡(luò)間的通信,再結(jié)合數(shù)據(jù)庫對持久化數(shù)據(jù)的處理達(dá)到實現(xiàn)網(wǎng)絡(luò)間數(shù)據(jù)共享的目的。然后,通過使用國人編寫的框架pyspider 進(jìn)行爬蟲,以及使用 Django 和 Vue 框架創(chuàng)建 Web 項目。通過 wxpy 庫實現(xiàn) Python 操作微信發(fā)送消息等基礎(chǔ)功能的開發(fā),最后通過案例講解當(dāng)今熱門應(yīng)用微信小程序的開發(fā)。
本書適合零基礎(chǔ)或基礎(chǔ)薄弱,但又想快速掌握 Python 基礎(chǔ)技能的讀者學(xué)習(xí)和實踐,也可作為編程開發(fā)人員提升 Python 技能水平和豐富實戰(zhàn)經(jīng)驗的指導(dǎo)用書,同時還可作為廣大職業(yè)院校、計算機(jī)培訓(xùn)班相關(guān)專業(yè)與技能的教學(xué)參考用書。
楊焓,高級軟件開發(fā)工程師。長期從事軟件系統(tǒng)開發(fā)、集成和數(shù)據(jù)分析工作,對多種編程語言和數(shù)據(jù)庫有深入研究,積極探索人工智能在大數(shù)據(jù)集模型基礎(chǔ)上對醫(yī)學(xué)圖像、語音識別領(lǐng)域等方面的應(yīng)用。對物聯(lián)網(wǎng)行業(yè)應(yīng)用與開發(fā)有著豐富的經(jīng)驗,長期著手于程序和物品間網(wǎng)絡(luò)通信開發(fā),編寫智能機(jī)器人算法和性能控制。
第1篇 入門篇
1.1初識Python 3
1.1.1 Python的由來 3
1.1.2 Python的應(yīng)用領(lǐng)域 4
1.1.3 Python 2和Python 3的版本
區(qū)別 5
1.2 Python的安裝 6
1.2.1 Windows系統(tǒng)的Python
安裝 7
1.2.2 Linux系統(tǒng)的Python安裝 14
1.3 Python編輯工具 17
1.3.1 Pycharm和Eclipse 18
1.3.2 工具的配置 22
思考與練習(xí) 26
常見異常與解析 26
本章小結(jié) 28
2.3.4 邏輯運(yùn)算符 37
2.3.5 成員運(yùn)算符 37
2.4 數(shù)據(jù)類型 38
2.4.1 基本數(shù)據(jù)類型 38
2.4.2 基本類型轉(zhuǎn)換 39
思考與練習(xí) 40
常見異常與解析 41
本章小結(jié) 42
3.1 集合 44
3.1.1 創(chuàng)建和添加元素 44
3.1.2 刪除集合 44
3.1.3 更新集合 45
3.1.4 集合邏輯運(yùn)算 46
3.2 列表 46
3.2.1 序列與列表 46
3.2.2 列表基本操作 48
3.3 元組與字典 51
3.3.1 元組 52
3.3.2 字典 52
3.4 字符串 57
3.4.1 字符串基本操作 57
3.4.2 字符串常用操作 59
思考與練習(xí) 60
常見異常與解析 63
本章小結(jié) 64
4.1 條件語句 66
4.1.1 if...else語句 66
4.1.2 if...elif語句 67
4.1.3 嵌套條件語句 68
4.1.4 斷言 69
4.1.5 類三目運(yùn)算 69
4.2 循環(huán)語句 70
4.2.1 while循環(huán) 70
4.2.2 for循環(huán) 72
4.2.3 嵌套for循環(huán) 74
4.2.4 循環(huán)語句與條件語句 74
4.3 異常 75
4.3.1 異常介紹 75
4.3.2 捕獲異常 75
4.3.3 自定義異常 76
思考與練習(xí) 77
常見異常與解析 79
本章小結(jié) 80
5.1 函數(shù)定義 82
5.1.1 函數(shù)的定義 82
5.1.2 可變參數(shù)和關(guān)鍵字參數(shù) 83
5.2 變量與函數(shù) 84
5.2.1 函數(shù)中的變量 84
5.2.2 私有函數(shù)與公開函數(shù) 85
5.3 裝飾器 86
5.3.1 無參數(shù)裝飾器 86
5.3.2 帶參數(shù)裝飾器 88
5.4 遞歸 90
5.4.1 遞歸出口 90
5.4.2 二分搜索 91
5.4.3 文件查找 91
5.5 匿名函數(shù)和高階函數(shù) 92
5.5.1 匿名函數(shù) 92
5.5.2 map遍歷函數(shù) 93
5.5.3 filter過濾函數(shù) 94
5.5.4 reduce復(fù)合函數(shù) 94
5.5.5 sorted排序函數(shù) 95
思考與練習(xí) 95
常見異常與解析 96
本章小結(jié) 98
6.1 re模塊 100
6.1.1 常用符號 100
6.1.2 re模塊操作 101
6.2 正則與頁面爬取 103
6.2.1 requests庫 103
6.2.2 爬取今日天氣狀況 105
思考與練習(xí) 106
常見異常與解析 107
本章小結(jié) 108
第2篇 進(jìn)階篇
7.1 面向?qū)ο缶幊?111
7.1.1 面向?qū)ο筇匦?111
7.1.2 類的成員 111
7.1.3 訪問限制 111
7.2 特殊類的方法與函數(shù) 113
7.2.1 getter方法和setter方法 113
7.2.2 property函數(shù) 114
7.2.3 魔法函數(shù) 115
7.3 面向?qū)ο蟪绦蛟O(shè)計的特點 116
7.3.1 封裝 116
7.3.2 繼承 116
7.3.3 多態(tài) 117
7.4 特殊方法和反射 118
7.4.1 靜態(tài)方法和類方法 118
7.4.2 反射 119
思考與練習(xí) 120
常見異常與解析 121
本章小結(jié) 122
8.1 隊列和棧數(shù)據(jù)結(jié)構(gòu) 124
8.1.1 隊列 124
8.1.2 棧 125
8.2 排序算法 126
8.2.1 冒泡排序 127
8.2.2 插入排序 127
8.2.3 選擇排序 128
思考與練習(xí) 128
常見異常與解析 129
本章小結(jié) 130
9.1 目錄操作 132
9.1.1 創(chuàng)建目錄 132
9.1.2 目錄基本操作 132
9.2 文件 133
9.2.1 讀/寫文件 133
9.2.2 刪除文件 135
9.2.3 用with語句打開文件 136
思考與練習(xí) 137
常見異常與解析 137
本章小結(jié) 138
10.1 進(jìn)程 140
10.1.1 多進(jìn)程 140
10.1.2 守護(hù)進(jìn)程 142
10.2 線程 143
10.2.1 多線程 143
10.2.2 同步鎖 146
10.2.3 守護(hù)線程 147
思考與練習(xí) 149
常見異常與解析 150
本章小結(jié) 152
第3篇 高級篇
11.1 網(wǎng)絡(luò)編程概述 155
11.1.1 初識TCP/UDP協(xié)議 155
11.1.2 套接字簡介 157
11.2 socket編程 158
11.3 I/O模式 159
11.3.1 阻塞I/O模式 160
11.3.2 非阻塞I/O模式 161
11.3.3 異步I/O模式 161
11.3.4 I/O復(fù)用模式 162
常見異常與解析 163
本章小結(jié) 164
12.1 MySQL安裝 166
12.1.1 準(zhǔn)備工作 166
12.1.2 安裝 167
12.2 數(shù)據(jù)庫的使用 171
12.2.1 數(shù)據(jù)庫連接 171
12.2.2 數(shù)據(jù)庫創(chuàng)建 173
12.2.3 數(shù)據(jù)庫表的CRUD 175
12.2.4 事務(wù)的ACID特性 182
12.3 非關(guān)系型數(shù)據(jù)庫 182
12.3.1 NoSQL的分類 182
12.3.2 Redis安裝 183
12.3.3 持久化 185
常見異常與解析 187
本章小結(jié) 188
13.1 網(wǎng)頁爬蟲概述 190
13.1.1 初識爬蟲 190
13.1.2 爬蟲分類 190
13.2 網(wǎng)頁爬取 191
13.2.1 安裝pyspider 191
13.2.2 爬取愛動物網(wǎng)站 193
13.2.3 存儲數(shù)據(jù) 197
13.2.4 狀態(tài)選擇 201
常見異常與解析 203
本章小結(jié) 206
14.1 常見設(shè)計模式 208
14.1.1 單例模式 208
14.1.2 簡單工廠模式 211
14.1.3 工廠方法模式 212
14.2 Django 框架 214
14.2.1 初識Django框架 214
14.2.2 搭建Django項目 215
14.2.3 訪問MySQL數(shù)據(jù)庫 217
14.2.4 model模型 220
14.2.5 view視圖 223
14.3 Web項目 225
14.3.1 項目準(zhǔn)備 225
14.3.2 前后端分離 226
14.3.3 訪問數(shù)據(jù)庫 229
14.3.4 數(shù)據(jù)持久化 232
14.3.5 自定義中間件 235
14.3.6 禁止異地同時在線 237
14.3.7 假分頁與真分頁 240
14.3.8 退出 241
常見異常與解析 242
本章小結(jié) 246
15.1 wxpy庫應(yīng)用 248
15.1.1 登錄微信 248
15.1.2 發(fā)送消息 250
15.2 微信小程序 251
15.2.1 準(zhǔn)備工作 251
15.2.2 創(chuàng)建項目 251
15.2.3 建立連接 253
15.3 開發(fā)小程序 254
15.3.1 開發(fā)須知 254
15.3.2 登錄頁面 254
15.3.3 APP配置 256
15.4 數(shù)據(jù)處理 258
15.4.1 初始化數(shù)據(jù) 258
15.4.2 鉤子函數(shù) 260
15.4.3 登錄信息 261
15.4.4 音樂播放 262
15.4.5 熱門電影 263
15.5 小程序調(diào)試設(shè)置說明 265
常見異常與解析 266
本章小結(jié) 268