本書是《“笨辦法”學(xué)Python 3》一書的進階篇,《“笨辦法”學(xué)Python 3》介紹了用Python 3編程的基礎(chǔ)知識,而本書則通過52個精心設(shè)計的習題幫助讀者超越基礎(chǔ),提升水平。這52個習題大部分都結(jié)合實際演示,并配有附加挑戰(zhàn),每個習題都可以幫讀者掌握一項關(guān)鍵的實踐技能,包括使用文本編輯器管理復(fù)雜的項目、利用功能強大的數(shù)據(jù)結(jié)構(gòu)、應(yīng)用算法處理數(shù)據(jù)結(jié)構(gòu)、掌握必要的文本分析和處理技術(shù)、使用SQL有效且合邏輯地建模存儲數(shù)據(jù),以及學(xué)習強大的命令行工具等。本書旨在幫助讀者從單純地編寫能運行的代碼跨越到編寫能解決實際問題的高質(zhì)量Python代碼,成為一名高階的Python程序員。
本書適合所有已經(jīng)開始使用Python的技術(shù)人員,包括初級開發(fā)人員和已經(jīng)升級到Python 3.6版本以上的經(jīng)驗豐富的Python程序員。
·知乎、b站等技術(shù)大牛傾力推薦的暢銷書《笨辦法學(xué)Python 3》的進階篇;
·數(shù)百萬編程愛好者追捧的技術(shù)專家的全新作品;
·52個習題、1130分鐘的教學(xué)視頻,帶你步入Python進階的大門。
本書作者創(chuàng)建了一套非常有效的Python 3學(xué)習體系,只要跟著學(xué),你就會像作者教過的數(shù)百萬初學(xué)者一樣獲得成功!只要你能自律、投入和堅持!
在《“笨辦法”學(xué)Python 3》一書中,作者介紹了使用Python 3進行編程的基礎(chǔ)知識,而在這本進階篇中,作者通過讓你完成52個精心設(shè)計的習題來超越基礎(chǔ),提升水平。書中的每個習題均結(jié)合實際演示讓你入門,還有附加挑戰(zhàn)讓你加深理解,以此來幫你掌握一項關(guān)鍵的實踐技能。作者還提供了18小時的教學(xué)視頻,教你如何破壞、修正和調(diào)試代碼。
首先,你將了解如何分析在軟件中想要實現(xiàn)的概念和想法或想要解決的問題;然后,你將逐漸掌握根據(jù)自己的分析去設(shè)計解決方案,并盡可能簡單優(yōu)雅地實現(xiàn)它們的能力。作者自始至終都強調(diào)“過程”,選擇正確且適合自己的編程過程,你就會獲得開始的動力、解決問題的創(chuàng)造力和保證代碼質(zhì)量的能力,這樣你就能寫出他人可以信賴的代碼。一開始會很難,但很快你就會上手,并且會感覺很棒!
● 使用文本編輯器管理復(fù)雜的項目
● 學(xué)會利用數(shù)據(jù)結(jié)構(gòu)的強大功能
● 應(yīng)用算法處理數(shù)據(jù)結(jié)構(gòu)
● 掌握必要的文本分析和處理技術(shù)
● 使用SQL有效且合邏輯地對存儲數(shù)據(jù)進行建模
● 學(xué)習強大的命令行工具和使用技能
● 在完整的項目中結(jié)合多種實踐
本書會讓你的每一分鐘投入都有回報。你很快就會超越單純地編寫能運行的代碼,轉(zhuǎn)而編寫能解決實際問題的高質(zhì)量的Python代碼。你將成為一名優(yōu)秀的Python程序員。
本書適合所有已經(jīng)開始使用Python的人,包括初級開發(fā)人員和已經(jīng)升級到Python 3.6及以上版本的經(jīng)驗豐富的Python程序員。
澤德·A. 肖(Zed A.Shaw) 是《“笨辦法”學(xué)Python(第3版)》《“笨辦法”學(xué)Python 3》《“笨辦法”學(xué)Ruby(第3版)》《“笨辦法”學(xué)C語言》等多本備受歡迎的技術(shù)書的作者,他的書在全世界有數(shù)百萬讀者。他還是諸多開源項目的創(chuàng)建者,擁有近20年的編程和寫作經(jīng)驗。他大部分空閑時間致力于繪畫和藝術(shù)史的研究。
第 一部分 準備知識 1
如果不喜歡作者的個人流程怎么辦 2
如果發(fā)現(xiàn)自己太糟糕怎么辦 2
習題0 準備工作 3
程序員用的編輯器 3
Python 3.6 3
工作終端 4
pip和virtualenv的配置 4
實驗筆記 4
GitHub賬號 5
git 5
可選:錄屏軟件 5
進一步研究 5
習題1 論流程 7
習題挑戰(zhàn) 8
鞏固練習 9
進一步研究 9
習題2 論創(chuàng)新 11
習題挑戰(zhàn) 11
鞏固練習 12
習題3 論質(zhì)量 13
習題挑戰(zhàn) 14
鞏固學(xué)習 14
第二部分 快速實現(xiàn) 15
如何練習創(chuàng)新 16
為新手準備的流程 17
新手的寫代碼流程 17
習題4 處理命令行參數(shù) 19
習題挑戰(zhàn) 19
答案 20
鞏固練習 20
習題5 cat 21
習題挑戰(zhàn) 21
答案 22
鞏固練習 22
進一步研究 23
習題6 find 25
習題挑戰(zhàn) 26
鞏固練習 26
進一步研究 27
習題7 grep 29
習題挑戰(zhàn) 29
鞏固練習 30
進一步研究 30
習題8 cut 31
習題挑戰(zhàn) 32
鞏固練習 32
進一步研究 32
習題9 sed 33
習題挑戰(zhàn) 33
鞏固練習 34
進一步研究 34
習題10 sort 35
習題挑戰(zhàn) 35
鞏固練習 36
進一步研究 36
習題11 uniq 37
習題挑戰(zhàn) 37
鞏固學(xué)習 38
進一步研究 38
習題12 復(fù)習 39
習題挑戰(zhàn) 39
鞏固練習 40
進一步研究 40
第三部分 數(shù)據(jù)結(jié)構(gòu) 43
通過數(shù)據(jù)結(jié)構(gòu)學(xué)習質(zhì)量 44
如何學(xué)習數(shù)據(jù)結(jié)構(gòu) 44
習題13 單鏈表 47
描述 47
控制器 48
測試 50
審計概述 52
習題挑戰(zhàn) 53
審計 53
鞏固練習 54
習題14 雙鏈表 55
介紹不變條件 56
習題挑戰(zhàn) 57
鞏固練習 58
習題15 棧和隊列 59
習題挑戰(zhàn) 60
破壞代碼 61
進一步研究 61
習題16 冒泡排序、快速排序和歸并排序 63
習題挑戰(zhàn) 63
冒泡排序 65
歸并排序 66
歸并排序的作弊模式 67
快速排序 69
鞏固練習 69
習題17 字典 71
習題挑戰(zhàn) 71
創(chuàng)建“代碼的原版副本” 71
復(fù)制代碼 72
注解代碼 75
總結(jié)數(shù)據(jù)結(jié)構(gòu) 76
記住總結(jié) 76
憑借記憶實現(xiàn) 77
重復(fù) 78
鞏固練習 78
破壞代碼 78
習題18 測量性能 79
工具 79
timeit 79
cProfile和profile 80
分析性能 82
習題挑戰(zhàn) 83
鞏固練習 83
破壞代碼 83
進一步研究 84
習題19 提高性能 85
習題挑戰(zhàn) 86
進一步研究 87
習題20 二叉查找樹 89
二叉查找樹必備知識 89
刪除 90
習題挑戰(zhàn) 91
鞏固練習 91
習題21 二分搜索 93
習題挑戰(zhàn) 93
鞏固練習 94
進一步研究 94
習題22 后綴數(shù)組 95
習題挑戰(zhàn) 96
鞏固練習 96
進一步研究 97
習題23 三叉查找樹 99
習題挑戰(zhàn) 99
鞏固練習 101
習題24 快速URL搜索 103
習題挑戰(zhàn) 103
鞏固練習 104
進一步研究 104
第四部分 中階項目 105
跟蹤代碼缺陷 105
習題25 xargs 107
習題挑戰(zhàn) 107
鞏固練習 107
習題26 hexdump 109
習題挑戰(zhàn) 110
鞏固練習 111
進一步研究 111
習題27 tr 113
習題挑戰(zhàn) 113
45分鐘工作時間段的利弊 114
鞏固練習 114
習題28 sh 115
習題挑戰(zhàn) 115
鞏固練習 116
進一步研究 116
習題29 diff和patch 117
習題挑戰(zhàn) 117
鞏固練習 118
進一步研究 118
第五部分 解析文本 119
介紹代碼覆蓋率 119
習題30 有限狀態(tài)機 121
習題挑戰(zhàn) 122
鞏固練習 124
進一步研究 124
習題31 正則表達式 125
習題挑戰(zhàn) 126
鞏固練習 127
進一步研究 127
習題32 掃描器 129
運行Python掃描器 130
習題挑戰(zhàn) 132
鞏固練習 132
進一步研究 133
習題33 解析器 135
遞歸下降解析 136
BNF文法 137
解析器快速演示 139
習題挑戰(zhàn) 141
鞏固練習 141
進一步研究 142
習題34 分析器 143
訪問者模式 143
短小的Puny Python分析器 144
解析器和分析器的對比 147
習題挑戰(zhàn) 147
鞏固練習 148
進一步研究 148
習題35 解釋器 149
解釋器和編譯器的對比 149
Python兩者皆是 150
如何寫解釋器 150
習題挑戰(zhàn) 151
鞏固練習 151
進一步研究 151
習題36 簡單計算器 153
習題挑戰(zhàn) 153
鞏固練習 154
進一步研究 154
習題37 小小BASIC 155
習題挑戰(zhàn) 155
鞏固練習 156
第六部分 SQL和對象關(guān)系映射 157
理解SQL就是理解表 157
你將學(xué)到什么 158
習題38 SQL簡介 159
什么是SQL 159
準備工作 160
學(xué)習SQL術(shù)語 161
SQL文法 162
進一步研究 162
習題39 SQL的創(chuàng)建操作 163
創(chuàng)建表 163
創(chuàng)建多表數(shù)據(jù)庫 164
插入數(shù)據(jù) 165
插入?yún)⒖紨?shù)據(jù) 165
習題挑戰(zhàn) 165
進一步研究 166
習題40 SQL的讀取操作 167
跨表選擇行 167
習題挑戰(zhàn) 168
進一步研究 169
習題41 SQL的更新操作 171
更新復(fù)雜數(shù)據(jù) 171
替換數(shù)據(jù) 172
習題挑戰(zhàn) 173
進一步研究 173
習題42 SQL的刪除操作 175
使用別的表進行刪除 175
習題挑戰(zhàn) 176
進一步研究 177
習題43 SQL管理 179
刪除和修改表 179
遷移和數(shù)據(jù)演化 180
習題挑戰(zhàn) 181
進一步研究 182
習題44 使用Python的數(shù)據(jù)庫API 183
學(xué)習API 183
習題挑戰(zhàn) 184
進一步研究 184
習題45 創(chuàng)建ORM 185
習題挑戰(zhàn) 185
進一步研究 186
第七部分 終極項目 187
你的流程是什么 187
習題46 博客 189
習題挑戰(zhàn) 189
鞏固練習 190
習題47 bc 191
習題挑戰(zhàn) 191
鞏固練習 192
習題48 ed 193
習題挑戰(zhàn) 193
鞏固練習 194
習題49 sed 195
習題挑戰(zhàn) 196
鞏固練習 196
習題50 vi 197
習題挑戰(zhàn) 197
鞏固練習 198
習題51 lessweb 199
習題挑戰(zhàn) 199
破壞代碼 199
鞏固練習 200
習題52 moreweb 201
習題挑戰(zhàn) 201
破壞代碼 202
進一步研究 202