笨辦法學Python(原書第5版) Learn Python the Hard Way

[美] 澤德 A. 肖(Zed A. Shaw) 著 小甲魚 譯

  • 笨辦法學Python(原書第5版)-preview-1
  • 笨辦法學Python(原書第5版)-preview-2
  • 笨辦法學Python(原書第5版)-preview-3
笨辦法學Python(原書第5版)-preview-1

相關主題

商品描述

"本書通過60個練習的例子幫助讀者學習如何使用python語言 在本書中,你將通過完成60個精心設計的習題來學會python語言。閱讀書裏的習題,看作者提供的視頻,照著錄入代碼(不要復制和粘貼!),修正自己的錯誤,觀察程序的運行。在這個過程中,你將會瞭解好的現代python代碼長什麼樣子,如何有效地思考代碼,如何更加有效地找出和修正錯誤。本書通過實用的項目,讓你學以致用,從而對自己新學會的技能更有信心。Zed將教會你編寫出色的代碼所需具備的諸多關鍵技能。 "

目錄大綱

目錄

習題0 蓄勢待發 1

通用指南 1

快速開始 1

完整指南 2

測試安裝 2

學習命令行 3

下一步 3

習題1 寫好第一個程序 4

運行結果 5

溫故知新 6

常見問題 6

藍色加號 7

習題2 註釋與#字符 8

運行結果 8

溫故知新 8

常見問題 9

習題3 數字與數學 10

運行結果 11

溫故知新 11

常見問題 11

習題4 變量與命名 13

運行結果 14

溫故知新 14

常見問題 14

習題5 更多的變量與打印 16

運行結果 17

溫故知新 17

常見問題 17

習題6 字符串與文本 18

運行結果 19

溫故知新 19

不破不立 19

常見問題 20

習題7 組合字符串 21

運行結果 21

溫故知新 22

不破不立 22

常見問題 22

習題8 手動格式化字符串 23

運行結果 23

溫故知新 24

常見問題 24

習題9 多行字符串 25

運行結果 25

溫故知新 26

常見問題 26

習題10 字符串中的轉義字符 27

運行結果 28

轉義序列 28

溫故知新 29

常見問題 29

習題11 向人提問 30

運行結果 30

溫故知新 31

常見問題 31

習題12 更簡單的提示方式 32

運行結果 32

溫故知新 32

常見問題 33

習題13 參數、解包、變量 34

如果你迷路了 35

代碼描述 35

等一下!“特性”還有另外一個名字 36

運行結果 36

溫故知新 37

常見問題 37

習題14 提示和傳遞 39

運行結果 40

溫故知新 40

常見問題 40

習題15 讀取文件 42

運行結果 43

溫故知新 43

常見問題 44

習題16 讀寫文件 45

運行結果 46

溫故知新 47

常見問題 47

習題17 更多文件操作 48

運行結果 49

溫故知新 49

常見問題 49

習題18 命名、變量、代碼、函數 51

練習代碼 52

運行結果 54

溫故知新 54

常見問題 55

習題19 函數和變量 56

運行結果 57

溫故知新 58

常見問題 58

習題20 函數和文件 59

運行結果 60

溫故知新 60

常見問題 61

習題21 函數可以返回某些內容 62

運行結果 63

溫故知新 63

常見問題 64

習題22 字符串、字節和字符編碼 65

初始研究 65

開關、約定和編碼 66

解析輸出 68

解析代碼 69

深度學習編碼 72

不破不立 72

習題23 列表入門 73

訪問列表中的元素 73

列表練習 74

代碼操作 74

挑戰 75

水果挑戰 75

汽車挑戰 75

語言挑戰 75

最終挑戰 76

習題24 字典入門 77

鍵/值結構 77

列表與數據對象的結合 78

代碼 79

運行結果 80

挑戰 80

水果挑戰 80

汽車挑戰 80

語言挑戰 81

最終挑戰 81

習題25 字典和函數 82

步驟1:函數名稱是變量 82

步驟2:帶變量的字典 82

步驟3:帶函數的字典 83

步驟4:解讀最後一行 83

溫故知新 84

習題26 字典和模塊 85

步驟1:import的回顧 85

步驟2:找到__dict__ 85

步驟3:更改__dict__ 86

溫故知新:如何查找“Dunders” 87

習題27 代碼遊戲的五條簡單規則 88

規則1:一切都是指令序列 88

如何獲取這些指令 89

這些字節碼存儲在哪裡 90

規則2:跳轉使序列非線性 90

為什麼是向後的 91

跳轉可以是向前的嗎 91

規則3:測試控制跳轉 91

你說的“彈出”是什麼意思 93

像COMPARE_OP這樣的測試

不也用在循環中嗎 93

規則4:存儲控制測試 93

規則5:輸入/輸出控制存儲 94

總結復習 95

字節碼列表 95

dis() 是副本任務 96

習題28 理解邏輯關系 97

邏輯術語 97

真值表 98

常見問題 100

習題29 布爾表達式練習 101

運行結果 102

溫故知新 102

常見問題 103

習題30 if是什麼 104

運行結果 104

使用 dis() 105

溫故知新 105

常見問題 105

習題31 else和if 106

運行結果 107

使用 dis() 107

溫故知新 108

常見問題 108

習題32 做出決策 109

運行結果 110

使用 dis() 110

溫故知新 111

常見問題 111

習題33 循環和列表 112

運行結果 113

使用 dis() 114

溫故知新 115

常見問題 115

習題34 while循環 116

運行結果 117

使用 dis() 117

溫故知新 118

常見問題 118

習題35 分支和函數 119

運行結果 121

溫故知新 121

常見問題 121

習題36 設計和調試 123

從想法到可工作的代碼 123

這個流程夠專業嗎 125

關於“X/Y”非問題 125

if語句的規則 126

循環的規則 127

調試的小技巧 127

家庭作業 127

習題37 符號復習 129

關鍵字 129

數據類型 130

字符串轉義序列 131

傳統字符串格式 131

運算符 132

閱讀代碼 133

溫故知新 134

常見問題 134

習題38 超越Windows的Jupyter 135

為什麼要學習 PowerShell 136

PowerShell是什麼 136

PowerShell對比Cmder 138

啟動Jupyter 138

獲取幫助 139

如何使用start命令 139

從圖形界面到PowerShell 139

你的工作目錄在哪裡 140

這裏有什麼? 140

文件、目錄和路徑 141

切換目錄 142

相對路徑 142

創建和銷毀 143

標誌和參數 143

復制和移動 144

環境變量 144

運行代碼 144

常用快捷鍵 145

有用的開發命令 145

遠不止於此 145

習題39 超越macOS/Linux的

     Jupyter 146

macOS的問題 147

為什麼學習Bash或ZSH 147

Bash是什麼? 147

啟動Jupyter 149

獲取幫助 149

如何使用start命令 149

從圖形界面到Bash 150

你的工作目錄在哪裡 150

這裏有什麼? 151

文件、目錄和路徑 151

切換目錄 152

相對路徑 152

創建和銷毀 153

隱藏文件 153

標誌和參數 154

復制和移動 154

環境變量 155

運行代碼 155

常用快捷鍵 155

有用的開發命令 156

遠不止於此 157

習題40 高級開發者工具 158

管理Conda環境 158

添加conda-forge 158

使用pip 159

使用 .condarc 文件 160

通用編輯技巧 160

更進一步 161

習題41 項目骨架 162

激活環境 162

使用cookiecutter 162

構建項目 163

安裝項目 163

測試安裝 164

移除test-project 164

常見錯誤 165

溫故知新 165

習題42 列表操作 166

運行結果 167

列表作用 168

何時使用列表 169

溫故知新 169

常見問題 170

習題43 字典操作 171

字典示例 172

運行結果 174

字典的作用 175

溫故知新 175

常見問題 176

習題44 從字典到對象 177

步驟一:將字典傳遞給函數 177

運行結果 178

步驟二:將talk添加到字典中 178

步驟三:閉包 179

運行結果 180

步驟四:角色構造函數 181

溫故知新 182

習題45 基礎面向對象編程 183

創建Person對象 183

使用 dir() 與 __dict__ 184

關於點號操作符(.) 185

術語 186

關於self 187

溫故知新 188

常見問題 188

習題46 繼承與高級面向對象編程 189

如何寫成代碼 190

關於class Name(object) 192

溫故知新 192

常見問題 193

習題47 基礎的面向對象分析和設計 194

簡單遊戲引擎的分析 195

把問題寫下來或者畫出來 195

提取和研究關鍵概念 195

給各種概念創建類層次結構和對象圖 196

編寫類和運行類的測試代碼 197

重復和優化 199

自頂向下與自底向上 199

“來自Percal 25號行星的哥頓人”

的代碼 200

運行結果 207

溫故知新 207

常見問題 208

習題48 繼承與組合 209

繼承是什麼? 209

隱式繼承 210

顯式覆蓋 211

在運行前或運行後替換 211

將3種方式組合在一起使用 212

使用 super() 的原因 214

super() 和 __init__ 搭配使用 214

組合 215

繼承和組合的應用場景 216

溫故知新 217

常見問題 217

習題49 開發你的專屬遊戲 218

評估你的遊戲 218

函數風格指南 219

類風格指南 219

代碼風格指南 220

好的註釋 220

評估你的代碼 221

習題50 自動化測試 222

測試的目的是什麼 222

如何高效測試 222

安裝pytest 223

簡單的pytest案例 224

運行pytest 225

異常和try/except 225

獲取覆蓋率報告 226

溫故知新 227

常見問題 227

習題51 數據清洗 229

為什麼要進行數據清洗 230

問題描述 230

安裝 231

如何編寫代碼 231

流程示例 232

解決方案策略 234

強大的ETL工具 235

溫故知新 236

習題52 網絡爬蟲 237

引入with關鍵字 237

問題描述 238

安裝 238

線索 239

強大的抓取工具 239

溫故知新 240

習題53 從API獲取數據 241

介紹JSON 241

問題描述 242

安裝 243

線索 243

強大的API工具 244

溫故知新 244

習題54 使用pandas進行數據轉換 245

介紹Pandoc 245

問題描述 245

安裝 246

線索 246

溫故知新 247

習題55 如何閱讀文檔(以pandas

                為例) 248

為什麼編程文檔都很糟糕 248

如何主動閱讀程序員文檔 249

第1步:找到文檔 249

pandas舉例 249

第2步:確定策略 250

pandas舉例 250

第3步:代碼第一,文檔第二 251

pandas舉例 251

第4步:破壞或修改代碼 252

第5步:記筆記 252

第6步:隨心所欲 252

pandas舉例 252

第7步:總結與表達 252

pandas舉例 253

第8步:什麼是整體感 253

pandas舉例 254

閱讀我的pandas課程 254

習題56 只使用pandas 255

創建項目 255

問題描述 255

安裝 255

溫故知新 256

習題57 快速入門SQL 257

SQL是什麼 257

安裝 258

修復和加載 259

備份數據庫 259

創建、讀取、更新、刪除 260

SELECT 260

日期和時間 261

INSERT 262

UPDATE 263

DELETE和事務 263

數學、聚合和GROUP BY 265

Python訪問 266

習題58 SQL規範化 267

什麼是規範化 267

第一範式(1NF) 268

實現第一範式(1NF) 269

在SQL中創建表 270

第二範式(2NF) 270

實現2NF 271

使用Python 273

查詢2NF數據 273

使用JOIN進行查詢 274

溫故知新 275

習題59 SQL查詢關系 277

一對多(1∶M) 277

Python中的一對多 277

一對多的問題 278

多對多(M∶M) 278

多對多的問題 279

一對一(1∶1) 279

屬性關系 280

查詢多對多表 280

最後的溫故知新 281

習題60 來自一位資深程序員的

     建議 282