作者根據(jù)自己多年的前后端開發(fā)經(jīng)驗(yàn),站在完全零基礎(chǔ)讀者的角度,詳盡介紹了Python編程語言的基礎(chǔ)知識(shí),以及大量的開發(fā)技巧,包括Python語基本語法、運(yùn)算符與表達(dá)式、流程控制語句、列表與元組、字符串、字典與集合、Python中使用正則表達(dá)式、函數(shù)、數(shù)值計(jì)算、時(shí)間日期等。所有知識(shí)都結(jié)合具體實(shí)例進(jìn)行介紹,涉及的程序代碼都給出了詳細(xì)的注釋,讀者可輕松領(lǐng)會(huì)Python程序開發(fā)的精髓,快速提升開發(fā)技能。每章最后還提供了難度適中的習(xí)題,檢驗(yàn)學(xué)習(xí)效果。
Q:我一點(diǎn)編程基礎(chǔ)都沒有,也可以學(xué)會(huì)嗎?
答:完全沒有問題!在眾多編程語言中,Python可以說是很容易入門的一個(gè)。即使你之前沒有接觸過一點(diǎn)編程,都可以很輕松地入門Python。實(shí)際上,現(xiàn)在很多中學(xué)都已經(jīng)開設(shè)了Python編程課。
Q:這本書只會(huì)介紹入門方面的知識(shí)嗎?
答:這幾本書可不止于初級(jí)水平的教學(xué)。在精講語法的同時(shí),還穿插了各種開發(fā)技巧,讓你的技術(shù)更勝別人一籌。
Q:學(xué)完這本書,我可以達(dá)到什么水平?
答:本書旨在讓你快速上手Python。讀完本書,你已經(jīng)打下了堅(jiān)實(shí)的基礎(chǔ),也達(dá)到了初級(jí)開發(fā)水平,接下來就可以開始學(xué)習(xí)更高級(jí)的技術(shù),比如數(shù)據(jù)分析、網(wǎng)絡(luò)爬蟲等。
如果想要成為一名真正的Python工程師,想要更深入地學(xué)習(xí)Python,小伙伴們可以看一下本書的進(jìn)階篇《從0到1:Python進(jìn)階之旅》。
莫振杰,全棧工程師,涉獵包括前端、后端、Python等多個(gè)領(lǐng)域,熟練掌握J(rèn)avaScript、Vue、React、Node.js、Python、SQL等多門技術(shù)。擁有一個(gè)非常受歡迎的個(gè)人網(wǎng)站:綠葉學(xué)習(xí)網(wǎng),用于分享開發(fā)經(jīng)驗(yàn)以及各種技術(shù)。
他還是多本圖書的作者,憑著“從0到1”系列圖書,曾獲得“人民郵電出版社IT圖書2020年最具影響力作者”。
目 錄
第 1部分 基礎(chǔ)篇
第 1章 認(rèn)識(shí)Python 3
1.1 Python簡介 3
1.1.1 Python是什么? 3
1.1.2 Python能干什么? 4
1.1.3 Python有什么特點(diǎn)? 5
1.2 教程介紹 5
1.2.1 Python版本 5
1.2.2 初學(xué)者關(guān)心的問題 6
1.3 安裝Python 6
1.3.1 Windows系統(tǒng) 7
1.3.2 Mac系統(tǒng) 8
1.4 使用IDLE 9
1.4.1 IDLE的簡單使用 10
1.4.2 保存代碼到文件 11
1.5 使用VS Code 13
1.5.1 安裝VS Code 13
1.5.2 安裝插件 14
1.5.3 運(yùn)行代碼 15
1.6 使用PyCharm 17
1.6.1 安裝PyCharm 18
1.6.2 安裝插件 19
1.6.3 運(yùn)行代碼 20
1.7 本章練習(xí) 24
第 2章 語法基礎(chǔ) 25
2.1 語法簡介 25
2.2 變量與常量 26
2.2.1 變量 26
2.2.2 常量 29
2.3 數(shù)據(jù)類型 30
2.3.1 數(shù)字 30
2.3.2 字符串 31
2.3.3 判斷類型 33
2.4 運(yùn)算符 33
2.4.1 算術(shù)運(yùn)算符 34
2.4.2 賦值運(yùn)算符 35
2.4.3 比較運(yùn)算符 35
2.4.4 邏輯運(yùn)算符 36
2.4.5 成員運(yùn)算符 38
2.4.6 身份運(yùn)算符 39
2.5 表達(dá)式與語句 40
2.6 類型轉(zhuǎn)換 40
2.6.1 數(shù)字轉(zhuǎn)換為字符串 40
2.6.2 字符串轉(zhuǎn)換為數(shù)字 41
2.6.3 整數(shù)與浮點(diǎn)數(shù)互轉(zhuǎn) 42
2.7 轉(zhuǎn)義字符 43
2.8 注釋 44
2.8.1 單行注釋 44
2.8.2 多行注釋 45
2.8.3 編碼注釋 46
2.9 輸出內(nèi)容:print() 46
2.9.1 語法簡介 46
2.9.2 常用參數(shù) 47
2.10 輸入內(nèi)容:input() 48
2.11 運(yùn)算符優(yōu)先級(jí) 49
2.11.1 優(yōu)先級(jí)介紹 49
2.11.2 最佳實(shí)踐 51
2.12 實(shí)戰(zhàn)題:交換兩個(gè)變量的值 52
2.13 實(shí)戰(zhàn)題:交換個(gè)位和十位 52
2.14 本章練習(xí) 53
第3章 流程控制 55
3.1 流程控制簡介 55
3.1.1 順序結(jié)構(gòu) 55
3.1.2 選擇結(jié)構(gòu) 56
3.1.3 循環(huán)結(jié)構(gòu) 56
3.2 選擇結(jié)構(gòu):if 57
3.2.1 單向選擇:if 57
3.2.2 雙向選擇:if...else... 59
3.2.3 多向選擇:if...elif...else... 60
3.2.4 if語句的嵌套 60
3.3 循環(huán)結(jié)構(gòu):while 62
3.4 循環(huán)結(jié)構(gòu):for 64
3.4.1 for循環(huán) 64
3.4.2 range() 65
3.5 break和continue 67
3.5.1 break 67
3.5.2 continue 68
3.6 實(shí)戰(zhàn)題:找出水仙花數(shù) 69
3.7 實(shí)戰(zhàn)題:求0~100中的所有質(zhì)數(shù) 69
3.8 實(shí)戰(zhàn)題:輸出一個(gè)圖案 70
3.9 本章練習(xí) 71
第4章 列表與元組 73
4.1 列表是什么? 73
4.2 列表的創(chuàng)建 74
4.3 基本操作 74
4.3.1 獲取元素 74
4.3.2 修改元素 76
4.3.3 增加元素 76
4.3.4 刪除元素 78
4.4 獲取列表長度:len() 81
4.5 獲取元素出現(xiàn)次數(shù):count() 82
4.6 獲取元素下標(biāo):index() 83
4.7 合并列表:extend() 84
4.8 清空列表 85
4.9 截取列表:[m:n] 85
4.10 遍歷列表:for...in... 87
4.10.1 遍歷列表中的每一項(xiàng) 87
4.10.2 獲得索引 88
4.11 檢索列表:in、not in 89
4.12 顛倒順序:reverse() 89
4.13 大小排序:sort() 90
4.14 數(shù)值計(jì)算:max()、min()、sum() 91
4.15 將列表轉(zhuǎn)換為字符串:join() 91
4.16 列表運(yùn)算 92
4.17 二維列表 93
4.18 元組是什么? 94
4.18.1 元組介紹 94
4.18.2 元組操作 96
4.19 實(shí)戰(zhàn)題:求列表中的最大值 97
4.20 實(shí)戰(zhàn)題:輸出星期數(shù) 98
4.21 本章練習(xí) 99
第5章 字符串 102
5.1 字符串是什么? 102
5.1.1 多行字符串 102
5.1.2 原始字符串 103
5.2 獲取某一個(gè)字符 104
5.3 獲取字符串長度 105
5.4 統(tǒng)計(jì)字符的個(gè)數(shù):count() 106
5.5 獲取字符的下標(biāo):index() 106
5.6 截取字符串:[m:n] 107
5.7 替換字符串:replace() 109
5.8 分割字符串 110
5.9 去除首尾符號(hào) 112
5.10 大小寫轉(zhuǎn)換 112
5.10.1 lower()和upper() 112
5.10.2 swapcase() 113
5.11 檢索字符串 114
5.11.1 find() 114
5.11.2 startswith()和endswith() 115
5.11.3 深入了解 116
5.12 拼接字符串 116
5.12.1 %s 117
5.12.2 format() 117
5.13 類型轉(zhuǎn)換 118
5.13.1 list() 118
5.13.2 tuple() 119
5.14 字符串的運(yùn)算 120
5.15 實(shí)戰(zhàn)題:統(tǒng)計(jì)單詞的個(gè)數(shù) 121
5.16 實(shí)戰(zhàn)題:將首字母轉(zhuǎn)換成大寫 121
5.17 本章練習(xí) 122
第6章 字典與集合 124
6.1 字典是什么? 124
6.2 字典的創(chuàng)建 125
6.3 基本操作 125
6.3.1 獲取某個(gè)鍵的值 125
6.3.2 修改某個(gè)鍵的值 126
6.3.3 增加鍵值對 126
6.3.4 刪除鍵值對 127
6.4 獲取字典的長度 127
6.5 清空字典 128
6.6 復(fù)制字典 128
6.7 檢索字典 129
6.8 獲取鍵或值 129
6.8.1 keys() 130
6.8.2 values() 131
6.8.3 items() 132
6.9 集合是什么? 133
6.9.1 集合介紹 133
6.9.2 基本操作 134
6.9.3 集合操作 135
6.9.4 應(yīng)用場景 136
6.10 實(shí)戰(zhàn)題:統(tǒng)計(jì)數(shù)字出現(xiàn)的次數(shù) 137
6.11 實(shí)戰(zhàn)題:統(tǒng)計(jì)出現(xiàn)次數(shù)最多的字母 137
6.12 本章練習(xí) 138
第7章 初識(shí)函數(shù) 140
7.1 函數(shù)是什么? 140
7.2 函數(shù)的定義 142
7.2.1 沒有返回值的函數(shù) 142
7.2.2 有返回值的函數(shù) 143
7.2.3 全局變量與局部變量 144
7.3 函數(shù)的調(diào)用 145
7.3.1 直接調(diào)用 145
7.3.2 在表達(dá)式中調(diào)用 146
7.4 函數(shù)參數(shù) 147
7.4.1 形參和實(shí)參 147
7.4.2 參數(shù)可以是任何類型 147
7.5 嵌套函數(shù) 148
7.6 內(nèi)置函數(shù) 149
7.6.1 內(nèi)置函數(shù)介紹 149
7.6.2 統(tǒng)計(jì)函數(shù) 150
7.7 實(shí)戰(zhàn)題:判斷某一年是否為閏年 152
7.8 實(shí)戰(zhàn)題:冒泡排序 152
7.9 本章練習(xí) 153
第8章 數(shù)學(xué)計(jì)算 155
8.1 數(shù)學(xué)計(jì)算簡介 155
8.2 求絕對值 157
8.3 四舍五入 157
8.4 取整運(yùn)算 158
8.4.1 向上取整:ceil() 158
8.4.2 向下取整:floor() 159
8.5 平方根與冪運(yùn)算 160
8.6 圓周率 161
8.7 三角函數(shù) 162
8.8 生成隨機(jī)數(shù) 163
8.8.1 隨機(jī)整數(shù) 164
8.8.2 隨機(jī)浮點(diǎn)數(shù) 165
8.8.3 隨機(jī)序列 166
8.9 實(shí)戰(zhàn)題:生成隨機(jī)驗(yàn)證碼 168
8.10 本章練習(xí) 169
第9章 日期時(shí)間 171
9.1 日期時(shí)間簡介 171
9.2 time模塊 172
9.2.1 獲取日期時(shí)間 172
9.2.2 格式化日期時(shí)間 173
9.2.3 struct_time元組 175
9.3 datetime模塊 177
9.3.1 獲取日期時(shí)間 177
9.3.2 設(shè)置日期時(shí)間 179
9.4 實(shí)戰(zhàn)題:自定義日期時(shí)間格式 180
9.5 實(shí)戰(zhàn)題:計(jì)算函數(shù)執(zhí)行時(shí)間 181
9.6 本章練習(xí) 182
第 2部分 提高篇
第 10章 面向?qū)ο蟆?85
10.1 面向?qū)ο笫鞘裁??85
10.2 類和對象 186
10.3 構(gòu)造函數(shù):_ _init_ _() 188
10.4 類屬性和實(shí)例屬性 190
10.5 類方法和實(shí)例方法 192
10.6 靜態(tài)方法 193
10.7 繼承 194
10.8 實(shí)戰(zhàn)題:封裝一個(gè)矩形類 196
10.9 實(shí)戰(zhàn)題:封裝一個(gè)時(shí)間類 197
10.10 本章練習(xí) 198
第 11章 包與模塊 200
11.1 包和模塊簡介 200
11.1.1 包是什么? 200
11.1.2 模塊是什么? 201
11.2 自定義包 201
11.3 自定義模塊 202
11.4 以主程序形式執(zhí)行 204
第 12章 文件操作 206
12.1 文件操作簡介 206
12.2 文件路徑 206
12.2.1 絕對路徑 207
12.2.2 相對路徑 207
12.3 讀取文件 208
12.3.1 讀取所有內(nèi)容:read() 208
12.3.2 逐行讀取內(nèi)容:readlines() 209
12.4 寫入文件 211
12.4.1 以覆蓋方式寫入文件 211
12.4.2 以追加方式寫入文件 213
12.5 os模塊 214
12.5.1 獲取工作目錄 214
12.5.2 改變工作目錄 215
12.5.3 列舉所有文件 216
12.5.4 重命名文件 217
12.5.5 遍歷文件 217
12.5.6 拼接文件路徑 219
12.5.7 獲取文件大小 220
12.5.8 判斷文件或文件夾是否存在 221
12.5.9 獲取文件時(shí)間 222
12.6 異常處理 223
12.6.1 try...except...finally...語句 223
12.6.2 with語句 224
12.7 shutil模塊 225
12.7.1 復(fù)制文件與文件夾 225
12.7.2 移動(dòng)文件與文件夾 226
12.7.3 刪除文件與文件夾 227
12.8 send2trash模塊 228
12.9 zipfile模塊 229
12.9.1 讀取文件 229
12.9.2 解壓文件 230
12.9.3 壓縮文件 231
12.10 實(shí)戰(zhàn)題:讀寫.txt文件 233
12.11 實(shí)戰(zhàn)題:刪除某一類型的文件 234
12.12 實(shí)戰(zhàn)題:批量修改文件名 235
12.13 本章練習(xí) 236
第 13章 文件格式 238
13.1 文件格式簡介 238
13.2 JSON文件 238
13.2.1 JSON介紹 238
13.2.2 操作JSON數(shù)據(jù) 239
13.2.3 操作JSON文件 241
13.3 CSV文件 243
13.3.1 CSV介紹 243
13.3.2 操作CSV文件 244
13.4 Excel文件 248
13.4.1 Excel介紹 248
13.4.2 讀取Excel文件 248
13.5 實(shí)戰(zhàn)題:逆序輸出 253
13.6 本章練習(xí) 254
第 14章 異常處理 255
14.1 異常是什么? 255
14.1.1 異常介紹 255
14.1.2 常見異常 255
14.2 處理異!257
14.2.1 try...except...語句 257
14.2.2 else子句 261
14.2.3 finally子句 261
14.3 深入了解 263
14.3.1 低級(jí)錯(cuò)誤 263
14.3.2 中級(jí)錯(cuò)誤 263
14.3.3 高級(jí)錯(cuò)誤 264
14.4 本章練習(xí) 265
第 15章 正則表達(dá)式 266
15.1 正則表達(dá)式是什么? 266
15.2 正則表達(dá)式的使用 267
15.3 元字符 268
15.4 連接符 269
15.5 限定符 270
15.6 定位符 271
15.7 分組符 272
15.8 選擇符 273
15.9 轉(zhuǎn)義字符 274
15.10 不區(qū)分大小寫的匹配 275
15.11 貪心與非貪心 275
15.12 sub() 276
15.13 match()和search() 277
15.14 實(shí)戰(zhàn)題:匹配手機(jī)號(hào)碼 279
15.15 實(shí)戰(zhàn)題:匹配身份證號(hào)碼 279
15.16 本章練習(xí) 280
第3部分 應(yīng)用篇
第 16章 圖像處理 285
16.1 應(yīng)用技術(shù)簡介 285
16.2 Pillow庫 285
16.2.1 Pillow庫介紹 285
16.2.2 顏色值 286
16.2.3 像素 287
16.2.4 坐標(biāo)系 287
16.3 圖片操作 288
16.3.1 創(chuàng)建區(qū)域:Image.new() 290
16.3.2 改變大小:resize() 291
16.3.3 切割圖片:crop() 291
16.3.4 旋轉(zhuǎn)圖片:rotate() 292
16.3.5 翻轉(zhuǎn)圖片:transpose() 293
16.3.6 復(fù)制和粘貼:copy()、paste() 294
16.4 繪制圖形 295
16.4.1 點(diǎn) 296
16.4.2 直線 297
16.4.3 矩形 298
16.4.4 多邊形 299
16.4.5 圓弧 300
16.4.6 扇形 302
16.4.7 圓或橢圓 303
16.5 繪制文本 305
16.5.1 文本的繪制方法 305
16.5.2 設(shè)置字體 306
16.6 圖片美化 307
第 17章 數(shù)據(jù)可視化 310
17.1 數(shù)據(jù)可視化簡介 310
17.2 拆線圖 311
17.2.1 基本語法 311
17.2.2 自定義樣式 314
17.3 通用設(shè)置 319
17.3.1 定義標(biāo)題 320
17.3.2 定義圖例 322
17.3.3 畫布樣式 323
17.3.4 坐標(biāo)軸刻度 323
17.3.5 坐標(biāo)軸范圍 326
17.3.6 網(wǎng)格線 327
17.3.7 描述文本 329
17.3.8 添加注釋 330
17.4 通用樣式參數(shù) 332
17.5 柱狀圖 332
17.5.1 基本語法 332
17.5.2 高級(jí)繪圖 333
17.6 直方圖 336
17.6.1 基本語法 336
17.6.2 自定義樣式 338
17.7 餅狀圖 339
17.7.1 基本語法 339
17.7.2 自定義樣式 340
17.8 散點(diǎn)圖 344
17.8.1 基本語法 344
17.8.2 自定義樣式 345
17.9 面積圖 347
17.9.1 基本語法 347
17.9.2 高級(jí)繪圖 348
17.10 子圖表 349
17.11 實(shí)戰(zhàn)題:從CSV文件中讀取數(shù)據(jù)并
繪圖 352
第 18章 數(shù)據(jù)庫操作 354
18.1 數(shù)據(jù)庫簡介 354
18.2 操作SQLite 354
18.2.1 創(chuàng)建數(shù)據(jù)庫 355
18.2.2 增刪查改操作 356
18.3 操作MySQL 360
18.3.1 安裝MySQL 360
18.3.2 安裝Navicat for MySQL 364
18.3.3 操作數(shù)據(jù)庫 368
18.4 操作MongoDB 370
18.4.1 安裝MongoDB 370
18.4.2 連接MongoDB 374
18.4.3 操作數(shù)據(jù)庫 375
18.4.4 增刪查改操作 376
第 19章 GUI編程 384
19.1 tkinter簡介 384
19.2 文本與圖片 385
19.2.1 Label組件介紹 385
19.2.2 Label組件的樣式參數(shù) 387
19.2.3 使用內(nèi)置圖片 388
19.3 Button組件 389
19.4 復(fù)選框 391
19.5 單選按鈕 393
19.6 分組框 395
19.7 文本框 396
19.8 列表框 397
第 20章 電子郵件 399
20.1 電子郵件簡介 399
20.2 發(fā)送純文本格式的郵件 401
20.3 發(fā)送HTML格式的郵件 404
20.4 發(fā)送帶附件的郵件 406
20.4.1 附件為文本類型 406
20.4.2 附件為其他類型 408
附錄A Python關(guān)鍵字 411
附錄B 數(shù)據(jù)類型 412
附錄C 運(yùn)算符優(yōu)先級(jí) 413
附錄D 列表常用的方法 414
附錄E 字符串常用的方法 415
附錄F 字典常用的方法 416
附錄G 數(shù)學(xué)運(yùn)算 417
附錄H Python模塊 418
后記 419