(1)作者背景資深:作者是資深Python技術專家和數(shù)據(jù)產(chǎn)品專家,在Python數(shù)據(jù)科學領域有豐富的實戰(zhàn)經(jīng)驗。
(2)重新定義Python學習:規(guī)避了現(xiàn)有Python入門書知識點雜而不精、內(nèi)容脫離實際開發(fā)需求、詳略設置不合理、學習曲線過于陡峭、案例過于炫技等弊端。
(3)人人可零基礎入門,不論年齡,不分職業(yè),不需要任何背景知識。
(4)結構設計合理、學習曲線平滑,輕松打牢Python基礎,快速把Python用起來。
(5)4步從菜鳥到高手:安裝環(huán)境、運行代碼、復現(xiàn)案例、舉一反三。
(6)圖解書中難點和重點,清晰直觀,一圖勝千言。
(7)代碼簡潔,變量命名簡單,代碼邏輯清晰,避免晦澀難懂術語。
(8)知識全面,詳略得當,涵蓋最新的語言特性。
(9)面向應用,講解第三方庫,配有經(jīng)典、實用案例。
(10)配套視頻:100個視頻,近10個小時,邊看邊學,輕松愉快
(11)實戰(zhàn)案例:1600個小案例,30個綜合案例,邊練邊學,舉一反三
(12)案例源碼:提供全書大小案例源代碼,邊敲邊學,實踐導向
(13)配套習題:提供大量的高品質練習題,邊學邊練,鞏固提高
(14)在線答疑:紙書、社群、網(wǎng)站可答疑,邊問邊學,事半功倍
(15)思維導圖:一張圖呈現(xiàn)全書知識精華,先看后學,窺斑知豹
(16)PPT課件:針對性配套完整教學PPT,邊教邊學,教學相長
作為生產(chǎn)力工具,Python是當今極為流行的編程語言。Python編程逐漸成為一項通用能力,從小學生到各個行業(yè)的從業(yè)人員都在學Python。Python確實能夠在很多領域發(fā)揮作用,以至于Python編程已經(jīng)成為一些職業(yè)的加分項能力。
2021年,我撰寫的《深入淺出Pandas:利用Python進行數(shù)據(jù)處理與分析》一書出版,得到廣大讀者的認可。這是一本Python數(shù)據(jù)分析方面的書,我在和讀者的交流中發(fā)現(xiàn),很多人過于追求快速應用,而忽視了對Python基礎的學習,導致基礎知識不扎實,缺乏自主解決問題的能力,這阻礙了其編程能力的進一步提升。于是我就有了寫一本Python入門書的
想法。
本書試圖讓讀者真正從零開始學好Python,打好Python基礎,為下一步自主學習、解決問題做好鋪墊。
本書特色
本書使用通俗的語言講解,也不使用過于復雜的算法,以讓更多的人能夠理解相關知識。同時,除了Python基礎的介紹,本書還介紹了Python在各個主要領域的應用案例。
本書有以下特色:
零基礎,盡量不使用專業(yè)詞匯,不需要任何背景知識;
語言通俗易懂,講解深入淺出,內(nèi)容詳略得當;
代碼簡潔,變量命名盡量使用簡單單詞;
知識全面,講解精練,涵蓋最新的語言特性;
知識結構設計合理,學習曲線平滑;
面向應用,講解第三方庫,配有經(jīng)典、實用的案例。
另外,本書不堆砌知識,而是合理編排內(nèi)容,從總到分,從原理到細節(jié),從理論到實例,根據(jù)讀者的學習心智模型層層遞進。在應用部分,本書選取了數(shù)據(jù)科學(數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化)、辦公自動化(對Word、Excel的操作)、圖形及界面、Web開發(fā)等領域的案例,引導讀者在實踐中應用Python。這些案例非常有代表性,且均有詳細的代碼
講解。
目 錄?Contents
前 言
第1章 開始Python編程 1
1.1 認識Python 1
1.1.1 什么是編程 1
1.1.2 Python的誕生 2
1.1.3 Python的特點 3
1.1.4 為什么選擇Python 4
1.1.5 如何學習Python 5
1.1.6 小結 5
1.2 Python快速入門 6
1.2.1 print() 6
1.2.2 基本數(shù)據(jù)類型 7
1.2.3 構造基本數(shù)據(jù) 8
1.2.4 賦值 10
1.2.5 注釋 11
1.2.6 流程控制 11
1.2.7 函數(shù) 13
1.2.8 類 14
1.2.9 模塊和包 15
1.2.10 小結 15
1.3 開發(fā)環(huán)境搭建 16
1.3.1 開發(fā)環(huán)境選擇 16
1.3.2 Python安裝管理 16
1.3.3 Miniconda安裝 17
1.3.4 安裝與管理Python環(huán)境 18
1.3.5 安裝第三方庫 19
1.3.6 JupyterLab 20
1.3.7 VS Code 22
1.3.8 PyCharm 23
1.3.9 小結 24
1.4 了解Python 24
1.4.1 代碼行 25
1.4.2 縮進 26
1.4.3 標識符 27
1.4.4 標識符命名 27
1.4.5 名稱的使用 30
1.4.6 常量和字面量 32
1.4.7 表達式 33
1.4.8 語句 35
1.4.9 命令行執(zhí)行 37
1.4.10 執(zhí)行模型 38
1.4.11 小結 40
1.5 本章小結 41
第2章 數(shù)據(jù)類型系統(tǒng) 42
2.1 一切皆對象 42
2.1.1 理解對象 42
2.1.2 理解類 43
2.1.3 類型檢測 44
2.1.4 屬性和方法 45
2.1.5 屬性和方法查看 46
2.1.6 屬性和方法的文檔 47
2.1.7 小結 49
2.2 內(nèi)置類型 49
2.2.1 類型體系 49
2.2.2 空類型和None 51
2.2.3 布爾值 52
2.2.4 布爾運算 54
2.2.5 比較運算 55
2.2.6 小結 56
2.3 數(shù)字 56
2.3.1 數(shù)值字面值 57
2.3.2 內(nèi)置構造函數(shù) 58
2.3.3 數(shù)字的運算 60
2.3.4 內(nèi)置計算函數(shù) 61
2.3.5 內(nèi)置進制轉換函數(shù) 62
2.3.6 數(shù)字的屬性和方法 63
2.3.7 小數(shù)的舍入 64
2.3.8 整數(shù)的按位運算 65
2.3.9 小結 66
2.4 字符串 66
2.4.1 字符串字面值 67
2.4.2 字符串轉義 68
2.4.3 字符串合并 69
2.4.4 格式化字面值 70
2.4.5 str()和repr() 71
2.4.6 ascii() 74
2.4.7 ord()和chr() 75
2.4.8 字符串的操作 75
2.4.9 字符串的方法 76
2.4.10 二進制序列 78
2.4.11 小結 79
2.5 本章小結 79
第3章 容器類型 80
3.1 容器類型概述 80
3.1.1 容器的分類 80
3.1.2 鴨子類型 81
3.1.3 成員檢測 83
3.1.4 拼接 84
3.1.5 迭代 85
3.1.6 原地操作 86
3.1.7 clear()方法 88
3.1.8 remove()方法 89
3.1.9 copy()方法 91
3.1.10 pop()方法 91
3.1.11 推導式 93
3.1.12 collections容器類型 95
3.1.13 小結 96
3.2 序列類型 96
3.2.1 序列簡介 96
3.2.2 自定義序列 97
3.2.3 range() 98
3.2.4 索引和切片 99
3.2.5 slice() 103
3.2.6 count()方法 104
3.2.7 index()方法 106
3.2.8 append()方法 108
3.2.9 extend()方法 109
3.2.10 insert()方法 110
3.2.11 reverse()方法 111
3.2.12 小結 111
3.3 列表和元組 112
3.3.1 構造列表 112
3.3.2 list() 112
3.3.3 列表的操作 113
3.3.4 列表的sort()方法 114
3.3.5 雙向隊列deque 115
3.3.6 元組構造 117
3.3.7 tuple() 118
3.3.8 圓括號形式 119
3.3.9 元組操作 122
3.3.10 元組解包 122
3.3.11 命名元組namedtuple() 123
3.3.12 小結 126
3.4 字典和集合 127
3.4.1 字典 127
3.4.2 dict() 128
3.4.3 hash()和可哈希 129
3.4.4 字典視圖 130
3.4.5 字典獲取值 133
3.4.6 字典的操作和方法 133
3.4.7 update()方法 134
3.4.8 字典的集合操作 135
3.4.9 字典的順序 136
3.4.10 有序字典OrderedDict 136
3.4.11 映射鏈ChainMap 137
3.4.12 默認字典defaultdict 139
3.4.13 計數(shù)器Counter 140
3.4.14 字典的應用 141
3.4.15 集合 142
3.4.16 set() 143
3.4.17 集合的操作和方法 144
3.4.18 集合運算 144
3.4.19 凍結集合frozenset() 145
3.4.20 小結 147
3.5 可迭代對象 147
3.5.1 可迭代對象簡介 147
3.5.2 星號解包 148
3.5.3 迭代器 151
3.5.4 iter()和next() 154
3.5.5 生成器和yield表達式 157
3.5.6 生成器表達式 159
3.5.7 send()方法 160
3.5.8 all()和any() 161
3.5.9 sorted() 163
3.5.10 reversed() 163
3.5.11 小結 164
3.6 本章小結 164
第4章 流程控制與函數(shù) 165
4.1 基礎流程控制語句 165
4.1.1 while語句 165
4.1.2 if語句 167
4.1.3 break和continue 169
4.1.4 for語句 169
4.1.5 with語句 171
4.1.6 raise語句 173
4.1.7 try語句 174
4.1.8 賦值表達式(海象符運算) 176
4.1.9 小結 179
4.2 模式匹配 179
4.2.1 基本語法 179
4.2.2 約束項 180
4.2.3 字面值匹配 181
4.2.4 或模式 181
4.2.5 字面值與變量模式 182
4.2.6 值模式 182
4.2.7 類模式 183
4.2.8 序列模式 183
4.2.9 映射模式 184
4.2.10 子模式中的as 185
4.2.11 小結 185
4.3 函數(shù) 186
4.3.1 理解函數(shù) 186
4.3.2 定義函數(shù) 186
4.3.3 函數(shù)的調(diào)用 188
4.3.4 函數(shù)返回值 189
4.3.5 遞歸函數(shù) 189
4.3.6 小結 190
4.4 函數(shù)的參數(shù) 190
4.4.1 函數(shù)參數(shù)簡介 190
4.4.2 位置參數(shù) 191
4.4.3 關鍵字參數(shù) 191
4.4.4 可變參數(shù) 191
4.4.5 星號參數(shù) 193
4.4.6 斜杠參數(shù) 193
4.4.7 小結 194
4.5 函數(shù)進階 194
4.5.1 可調(diào)用對象 194
4.5.2 高階函數(shù) 196
4.5.3 裝飾器 197
4.5.4 匿名函數(shù) 198
4.5.5 斷言 200
4.5.6 小結 201
4.6 常用內(nèi)置函數(shù) 201
4.6.1 zip() 202
4.6.2 enumerate() 203
4.6.3 eval() 204
4.6.4 exec()和compile() 204
4.6.5 globals()和locals() 205
4.6.6 vars() 206
4.6.7 小結 207
4.7 常用高階函數(shù) 207
4.7.1 map() 207
4.7.2 filter() 208
4.7.3 reduce() 209
4.7.4 partial() 209
4.7.5 @cache 210
4.7.6 @singledispatch 211
4.7.7 小結 211
4.8 本章小結 212
第5章 類與模塊 213
5.1 類的特征 213
5.1.1 類和對象 213
5.1.2 封裝 214
5.1.3 繼承 214
5.1.4 多態(tài) 214
5.1.5 小結 215
5.2 定義類 215
5.2.1 創(chuàng)建自定義類 215
5.2.2 類屬性 216
5.2.3 實例化 217
5.2.4 私有變量 218
5.2.5 類的繼承 219
5.2.6 類方法 221
5.2.7 靜態(tài)方法 222
5.2.8 特殊方法 222
5.2.9 __new__和__init__ 223
5.2.10 __str__和__repr__ 224
5.2.11 __call__ 225
5.2.12 小結 226
5.3 關于類的函數(shù) 226
5.3.1 super() 226
5.3.2 object() 227
5.3.3 type() 228
5.3.4 關于對象屬性的函數(shù) 229
5.3.5 partialmethod()偏方法 230
5.3.6 @property修飾方法 232
5.3.7 @cached_property緩存屬性 233
5.3.8 小結 233
5.4 類型注解 234
5.4.1 類型注解簡介 234
5.4.2 語法簡介 234
5.4.3 基本數(shù)據(jù)類型注解 235
5.4.4 容器類型注解 236
5.4.5 函數(shù)注解 237
5.4.6 鴨子類型注解 237
5.4.7 小結 238
5.5 模塊與庫 238
5.5.1 什么是模塊與庫 238
5.5.2 編寫模塊 239
5.5.3 庫的導入 241
5.5.4 庫的常用屬性 242
5.5.5 __import__()和importlib 243
5.5.6 第三方庫管理 243
5.5.7 小結 245
5.6 本章小結 245
第6章 常用內(nèi)置庫 246
6.1 random生成偽隨機數(shù) 246
6.1.1 隨機生成一個數(shù) 246
6.1.2 隨機生成一個序列 247
6.1.3 隨機打亂順序 248
6.1.4 讓結果復現(xiàn) 248
6.1.5 小結 249
6.2 字符串操作 249
6.2.1 string的常見字符串操作 249
6.2.2 base64編解碼 251
6.2.3 JSON編碼和解碼器 252
6.2.4 小結 254
6.3 正則表達式操作 254
6.3.1 正則表達式 255
6.3.2 re的函數(shù) 256
6.3.3 正則對象 257
6.3.4 匹配對象 258
6.3.5 小結 259
6.4 日期和時間 259
6.4.1 時間對象類型 260
6.4.2 date日期對象 260
6.4.3 time時間對象 262
6.4.4 datetime日期時間對象 263
6.4.5 timedelta間隔時間對象 266
6.4.6 timezone時區(qū) 266
6.4.7 strftime()和strptime() 267
6.4.8 小結 268
6.5 枚舉類型 268
6.5.1 枚舉簡介 268
6.5.2 創(chuàng)建一個枚舉類 269
6.5.3 枚舉對象的屬性和操作 270
6.5.4 枚舉的比較 271
6.5.5 枚舉值的唯一性 272
6.5.6 小結 273
6.6 本章小結 273
第7章 數(shù)據(jù)科學 274
7.1 NumPy 274
7.1.1 數(shù)據(jù)結構 275
7.1.2 數(shù)據(jù)類型 276
7.1.3 廣播計算 278
7.1.4 數(shù)組的軸 279
7.1.5 數(shù)組創(chuàng)建 281
7.1.6 隨機數(shù)組 283
7.1.7 通用函數(shù) 286
7.1.8 小結 286
7.2 pandas 287
7.2.1 數(shù)據(jù)結構 287
7.2.2 數(shù)據(jù)讀取與導出 290
7.2.3 數(shù)據(jù)篩選 290
7.2.4 數(shù)據(jù)修改 293
7.2.5 應用函數(shù) 294
7.2.6 分組聚合 296
7.2.7 小結 296
7.3 案例:利用廣播機制去除錯誤
數(shù)據(jù) 297
7.3.1 需求分析 297
7.3.2 實現(xiàn)思路 297
7.3.3 實現(xiàn)過程 298
7.3.4 小結 298
7.4 案例:計算客戶還夠最低還款
額的日期 299
7.4.1 需求分析 299
7.4.2 單個客戶數(shù)據(jù)計算 299
7.4.3 計算單用戶日期 300
7.4.4 封裝函數(shù) 301
7.4.5 分組應用函數(shù) 301
7.4.6 小結 302
7.5 案例:讀取并解析實驗數(shù)據(jù) 302
7.5.1 需求分析 302
7.5.2 思路分析 303
7.5.3 編寫代碼 303
7.5.4 優(yōu)化代碼 304
7.5.5 小結 305
7.6 數(shù)據(jù)可視化 305
7.6.1 Matplotlib 306
7.6.2 pandas可視化 308
7.6.3 seaborn 310
7.6.4 Plotly 312
7.6.5 pyecharts 315
7.6.6 小結 317
7.7 本章小結 318
第8章 辦公自動化 319
8.1 Excel操作案例 319
8.1.1 Excel數(shù)據(jù)填充 319
8.1.2 Excel合并工作表 322
8.1.3 按分組拆分Excel文件 326
8.1.4 按列拆分Excel文件 327
8.1.5 導出帶指定格式的Excel
文件 328
8.1.6 小結 329
8.2 Excel處理庫 330
8.2.1 XlsxWriter簡介 330
8.2.2 用XlsxWriter生成帶折線圖
的Excel文件 332
8.2.3 openpyxl簡介 334
8.2.4 用openpyxl創(chuàng)建繪圖
文件 335
8.2.5 xlwings簡介 337
8.2.6 用xlwings創(chuàng)建繪圖文件 338
8.2.7 小結 340
8.3 Word處理 340
8.3.1 python-docx簡介 341
8.3.2 docxtpl簡介 342
8.3.3 批量生成證明文件 344
8.3.4 生成Word表格 349
8.3.5 小結 352
8.4 本章小結 352
第9章 圖形及界面 353
9.1 生成證書圖片 353
9.1.1 需求描述 353
9.1.2 讀取圖片 354
9.1.3 合成文字 355
9.1.4 合成公章 356
9.1.5 封裝為函數(shù) 357
9.1.6 小結 358
9.2 編寫一個時鐘 359
9.2.1 定義窗體 359
9.2.2 定義顯示邏輯 360
9.2.3 讓時鐘動起來 361
9.2.4 封裝為類 361
9.2.5 小結 363
9.3 界面程序進階 363
9.3.1 窗體設計 363
9.3.2 優(yōu)化窗體顯示 364
9.3.3 獲取交互動作 365
9.3.4 輸入判斷 366
9.3.5 綁定操作 366
9.3.6 最終代碼 367
9.3.7 小結 368
9.4 本章小結 368
第10章 Web開發(fā) 369
10.1 用Flask開發(fā)成績查詢系統(tǒng) 369
10.1.1 需求分析 369
10.1.2 創(chuàng)建一個Flask項目 370
10.1.3 開發(fā)查詢頁 373
10.1.4 編寫查詢邏輯 375
10.1.5 開發(fā)查詢結果頁 376
10.1.6 開發(fā)結果頁模板 377
10.1.7 功能驗證 378
10.1.8 小結 379
10.2 用Django開發(fā)個人博客 379
10.2.1 需求分析 380
10.2.2 創(chuàng)建Django項目 380
10.2.3 創(chuàng)建模型 383
10.2.4 搭建管理后臺 385
10.2.5 安裝富文本編輯器 387
10.2.6 增加URL路由邏輯 389
10.2.7 開發(fā)內(nèi)容頁 389
10.2.8 開發(fā)首頁 392
10.2.9 開發(fā)分類列表頁 393
10.2.10 小結 395
10.3 本章小結 395