一本有趣、有用、好學(xué)的Python 編程書(shū)!本書(shū)以通俗易懂的語(yǔ)言、好玩有趣的案例讓讀者輕輕松松、循序漸進(jìn)地從零開(kāi)始掌握Python 3 編程。本書(shū)內(nèi)容也是筆者帶領(lǐng)的“Python 實(shí)戰(zhàn)圈”里數(shù)千名“圈友”的學(xué)習(xí)結(jié)晶。圈子里的小伙伴都是零基礎(chǔ)開(kāi)始學(xué)習(xí)Python 編程,甚至之前沒(méi)有接觸過(guò)編程的,比如初中生、跨行業(yè)學(xué)習(xí)者等。本書(shū)提供了一套完整的、系統(tǒng)的Python 基礎(chǔ)課,比如列表、if、函數(shù)等內(nèi)容,每一部分內(nèi)容除了有生動(dòng)有趣的項(xiàng)目實(shí)戰(zhàn),還有實(shí)際工作中需要注意的問(wèn)題。既能讓零基礎(chǔ)的讀者更好地學(xué)習(xí),也能讓有一定基礎(chǔ)的讀者繼續(xù)提升自身水平。本書(shū)適合零基礎(chǔ)學(xué)習(xí)Python 編程的讀者,想要入門人工智能領(lǐng)域的讀者,立志進(jìn)入數(shù)據(jù)分析編程領(lǐng)域的讀者,計(jì)劃加入Python 網(wǎng)頁(yè)工程師或游戲工程師的讀者,Python 愛(ài)好者等。
馬文豪,世界 500 強(qiáng)高級(jí)軟件開(kāi)發(fā)工程師、信息系統(tǒng)項(xiàng)目管理師,“七天小碼哥”公眾號(hào)作者。有超過(guò) 7 年大型軟件項(xiàng)目開(kāi)發(fā)管理經(jīng)驗(yàn),擅長(zhǎng) Python、Java 編程,熟悉算法建模和數(shù)據(jù)化運(yùn)營(yíng),精通 Oracle 數(shù)據(jù)庫(kù)問(wèn)題診斷、性能調(diào)整 Sql 優(yōu)化等。擁有計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(高級(jí))證書(shū),擁有核心期刊學(xué)術(shù)論文 1 篇,發(fā)明專利 1 篇。
第1 章 如何入門Python 編程 ? 1
1.1 編程語(yǔ)言的擇 ? 1
1.2 如何開(kāi)始學(xué)習(xí) ? 1
1.3 學(xué)習(xí)Python 的捷徑 ?2
1.4 Python 版本的選擇 2
1.5 Python 相關(guān)就業(yè)方面的選擇 2
1.5.1 Web 網(wǎng)頁(yè)工程師方向 ? 3
1.5.2 網(wǎng)絡(luò)爬蟲(chóng)工程師方向 ? 3
1.5.3 自動(dòng)化運(yùn)維方向 ? 3
1.5.4 數(shù)據(jù)分析師方向 ? 3
1.5.5 游戲開(kāi)發(fā)方向 ? 3
1.5.6 自動(dòng)化測(cè)試方向 ? 4
1.5.7 AI 方向 ? 4
1.6 注意事項(xiàng) ? 4
1.6.1 牢記搜索 4
1.6.2 學(xué)一點(diǎn)簡(jiǎn)單的英語(yǔ) 4
第2 章 Python“三劍客”,你會(huì)用哪個(gè) ? 5
2.1 什么是Python“三劍客” ? 5
2.2 為Windows 系統(tǒng)安裝Python 軟件 ?6
2.2.1 下載地址 6
2.2.2 安裝 ? 6
2.2.3 開(kāi)始使用 9
2.3 為macOS 系統(tǒng)安裝Python 軟件 10
2.4 PyCharm 簡(jiǎn)介 11
2.4.1 下載地址 ? 11
2.4.2 安裝 ?? 12
2.4.3 開(kāi)始使用 ? 13
2.5 Anaconda 簡(jiǎn)介 ? 17
2.5.1 下載地址 ? 18
2.5.2 安裝 ?19
2.5.3 如何使用Anaconda 20
2.6 Jupyter Notebook 簡(jiǎn)介 ?23
2.6.1 Jupyter Notebook 是什么 ? 23
2.6.2 安裝 ?24
2.6.3 啟動(dòng) ? 24
2.6.4 創(chuàng)建文件 ? 25
2.6.5 如何寫(xiě)代碼 26
第3 章 夯實(shí)Python 基礎(chǔ),為進(jìn)階做準(zhǔn)備 ? 27
3.1 第一次寫(xiě)代碼 27
3.2 數(shù)據(jù)——程序的原材料 28
3.3 學(xué)會(huì)寫(xiě)注釋,方便你我他 ?? 28
3.4 常量與變量 ? 29
3.4.1 變量命名規(guī)則 ? 30
3.4.2 變量命名方法 ? 30
3.5 數(shù)字類型 ? 31
3.5.1 整數(shù) ? 31
3.5.2 浮點(diǎn)數(shù) ? 32
3.6 布爾類型 ? 34
3.7 字符串類型 ? 35
3.7.1 什么是字符串 ? 35
3.7.2 字符串的基本用法 ? 36
3.7.3 字符串的常見(jiàn)運(yùn)算 ? 36
3.7.4 字符串的切片 ? 38
3.7.5 各種類型之間的轉(zhuǎn)換 39
第4 章 Python 數(shù)據(jù)結(jié)構(gòu)原來(lái)并不難 ? 41
4.1 什么是數(shù)據(jù)結(jié)構(gòu) ? 41
4.2 列表 ? 41
4.2.1 什么是列表 41
4.2.2 列表的基本操作 ? 42
4.2.3 列表的高級(jí)用法 ? 49
4.3 元組 ? 52
4.3.1 創(chuàng)建元組 ? 52
4.3.2 修改元組 ? 54
4.3.3 元組拆包 ? 55
4.3.4 元組方法 ? 58
4.3.5 元組與列表的區(qū)別 ? 58
4.4 項(xiàng)目練習(xí):用列表創(chuàng)建《延禧攻略》之魏瓔珞宴請(qǐng)名單 59
4.4.1 描述項(xiàng)目 ? 59
4.4.2 解析項(xiàng)目 ? 60
4.4.3 實(shí)現(xiàn)功能 ? 60
4.5 字典 ? 65
4.5.1 什么是字典 65
4.5.2 字典特性 ? 65
4.5.3 字典的基本操作 ? 66
4.5.4 內(nèi)置字典函數(shù)與方法 70
4.6 結(jié)合字典與列表 ?72
4.6.1 字典列表 ? 72
4.6.2 在字典中存儲(chǔ)列表 ? 72
4.6.3 在字典中存儲(chǔ)字典 ? 73
4.7 項(xiàng)目練習(xí):用字典管理電視劇《扶搖》的演員信息 ? 73
4.7.1 描述項(xiàng)目 ? 73
4.7.2 解析項(xiàng)目 ? 74
4.7.3 實(shí)現(xiàn)功能 ? 75
第5 章 Python 控制結(jié)構(gòu),厲害了 ? 80
5.1 Python 運(yùn)算符與表達(dá)式 ? 80
5.1.1 算術(shù)運(yùn)算符 80
5.1.2 比較(關(guān)系)運(yùn)算符 81
5.1.3 賦值運(yùn)算符 82
5.1.4 位運(yùn)算符 ? 83
5.1.5 邏輯運(yùn)算符 84
5.1.6 成員運(yùn)算符 85
5.1.7 身份運(yùn)算符 86
5.1.8 淺拷貝與深拷貝 ? 89
5.1.9 運(yùn)算符優(yōu)先級(jí) ? 91
5.2 Python 的三大控制結(jié)構(gòu) ? 93
5.3 順序結(jié)構(gòu) ? 93
5.4 分支結(jié)構(gòu) ? 94
5.5 循環(huán)結(jié)構(gòu) ? 97
5.6 for 循環(huán) ? 98
5.6.1 for 循環(huán)與列表 ? 99
5.6.2 for 循環(huán)與字典 ? 102
5.6.3 嵌套for 循環(huán) ?103
5.6.4 項(xiàng)目練習(xí):運(yùn)用for 循環(huán)生成九九乘法表 104
5.7 列表解析式 ??105
5.7.1 概念 105
5.7.2 指定if 條件的列表解析式 106
5.7.3 無(wú)條件的列表解析式 ? 109
5.7.4 嵌套循環(huán)的列表解析式 ? 109
5.7.5 字典解析式 ? 111
5.8 while 循環(huán) ? 114
5.8.1 用戶輸入 ? 115
5.8.2 break 與continue 語(yǔ)句 115
5.8.3 使用while 循環(huán)操作列表和字典 ?116
5.9 項(xiàng)目練習(xí):運(yùn)用Python 控制結(jié)構(gòu)創(chuàng)建通訊錄 ? 118
5.9.1 描述項(xiàng)目 ?118
5.9.2 解析項(xiàng)目 ?118
5.9.3 實(shí)現(xiàn)4 個(gè)功能 119
第6 章 Python 函數(shù),給你不一樣的介紹 122
6.1 什么是函數(shù) ? 122
6.1.1 為什么要用函數(shù) 123
6.1.2 如何定義函數(shù) 124
6.1.3 如何調(diào)用函數(shù) 125
6.2 如何傳遞參數(shù) ? 126
6.2.1 傳遞實(shí)參 ? 127
6.2.2 傳遞數(shù)據(jù)結(jié)構(gòu) 130
6.3 返回值 ? 131
6.3.1 return 語(yǔ)句 ?131
6.3.2 返回多個(gè)值 ? 133
6.4 函數(shù)是對(duì)象 ? 136
6.4.1 第一類對(duì)象 ? 136
6.4.2 函數(shù)賦值給變量 136
6.4.3 嵌套函數(shù) ?? 138
6.4.4 函數(shù)作為參數(shù) 140
6.4.5 將函數(shù)放在容器中 ?? 143
6.4.6 函數(shù)作為返回值 145
6.5 盒子的秘密 ? 148
6.5.1 LEGB 作用域 ? 148
6.5.2 關(guān)鍵字global ? 150
6.5.3 關(guān)鍵字nonlocal ? 153
6.6 閉包 ? 156
6.6.1 概念 156
6.6.2 __closure__屬性 159
6.6.3 為什么使用閉包 160
6.7 三大“神器”之裝飾器 ? 162
6.7.1 概念 162
6.7.2 裝飾帶有參數(shù)的函數(shù) ? 166
6.7.3 多個(gè)裝飾器 ? 169
6.7.4 項(xiàng)目練習(xí):使用裝飾器為函數(shù)添加計(jì)時(shí)功能 ? 171
6.8 三大“神器”之迭代器 ? 174
6.9 三大“神器”之生成器 ? 177
6.9.1 生成器表達(dá)式 177
6.9.2 關(guān)鍵字yield 179
6.10 匿名函數(shù) ? 182
6.10.1 概念 ? 182
6.10.2 匿名函數(shù)的使用場(chǎng)景 183
6.10.3 柯里化 ? 185
6.11 將函數(shù)存儲(chǔ)在模塊中 186
6.12 如何設(shè)計(jì)函數(shù) ?? 188
6.13 項(xiàng)目練習(xí):運(yùn)用函數(shù)創(chuàng)建自動(dòng)化管理文件 ? 188
6.13.1 項(xiàng)目描述 188
6.13.2 項(xiàng)目拆解 188
6.13.3 主程序 ? 189
6.13.4 實(shí)現(xiàn)管理功能 ?? 190
第7 章 Python 面向?qū)ο螅?jiǎn)單易懂 ?194
7.1 程序設(shè)計(jì)方法 ? 194
7.2 面向?qū)ο蟪绦蛟O(shè)計(jì)中的概念 ?? 195
7.3 如何定義類 ? 195
7.3.1 創(chuàng)建類 ?195
7.3.2 創(chuàng)建對(duì)象 ?197
7.4 繼承 ?199
7.5 導(dǎo)入類 ? 201
7.6 Python 庫(kù) 203
7.7 類編碼風(fēng)格 ? 203
7.8 項(xiàng)目練習(xí):運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)方法設(shè)計(jì)餐館系統(tǒng) ?203
7.8.1 項(xiàng)目概述 ?203
7.8.2 項(xiàng)目解析 ?204
7.8.3 源代碼實(shí)現(xiàn) ? 204
第8 章 Python 項(xiàng)目實(shí)戰(zhàn) 208
8.1 項(xiàng)目實(shí)戰(zhàn)1:運(yùn)用第三方庫(kù)設(shè)計(jì)微信聊天機(jī)器人 ? 208
8.1.1 項(xiàng)目目的 ?? 208
8.1.2 Wxpy 庫(kù)介紹 ? 208
8.1.3 指定聊天對(duì)象 211
8.1.4 聊天機(jī)器人 ? 212
8.2 項(xiàng)目實(shí)戰(zhàn)2:開(kāi)發(fā)簡(jiǎn)化版《陰陽(yáng)師》游戲 ? 213
8.2.1 項(xiàng)目描述 ?213
8.2.2 項(xiàng)目解析 ?213
8.2.3 歡迎界面 ?213
8.2.4 設(shè)計(jì)游戲人物 215
8.2.5 介紹游戲場(chǎng)景 219
8.2.6 開(kāi)始游戲 ?221
8.2.7 判斷是否進(jìn)入下一輪 ? 224
8.2.8 項(xiàng)目總結(jié) ? 224