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