Python入門教程 Python Basics: A Practical Introduction to Python 3

Bader, Dan, Jablonski, Joanna, Heisler, Fletcher

  • Python入門教程-preview-1
  • Python入門教程-preview-2
Python入門教程-preview-1

商品描述

本書由Real Python團隊傾力編寫,內容兼容Python 3.9版本。全書可分為兩大部分,共18章。前半部分透徹地講解現代Python編程的所有核心知識,後半部分帶領你用Python構建實際的應用程序和腳本,解決有趣的現實問題。本書按照邏輯順序介紹每個概念和語言特性,並以簡短明瞭的代碼示例進行解釋和說明。你還可以通過書中的編碼練習和項目鞏固基礎,通過交互式小測驗檢驗自己的學習效果。本書內容已經過數以萬計的Python愛好者、數據科學家和開發人員的實戰檢驗,尤其適合零基礎新人快速習得編寫Python程序的實用技巧,培養對編程的熱情。

作者簡介

戴维·阿莫斯(David Amos)

Real Python内容技术总监,Python社区活动PyCoder's Weekly组织者之一。

 

达恩·巴德尔(Dan Bader)

Real Python总编辑,Python社区“意见领袖”,realpython.com学习平台的主要开发人员,另著有热销书《深入理解Python特性》。

 

乔安娜·雅布隆斯基(Joanna Jablonski)

Real Python执行编辑,对谜题和规律的热爱、对细节的执着让她走上了翻译的职业道路。

 

弗莱彻·海斯勒(Fletcher Heisler)

Real Python联合创始人,毕业于普林斯顿大学,2012年,他编写了这份Python教程的初稿,后由本书作者戴维·阿莫斯牵头重写。

目錄大綱

讀者評價 iii

關於作者 v

序 vii

前言 xiii

第 1章 配置Python環境 1

1.1 有關Python版本的註意事項 1

1.2 Windows 2

1.2.1 安裝Python 2

1.2.2 打開IDLE 3

1.3 macOS 4

1.3.1 安裝Python 5

1.3.2 打開IDLE 6

1.4 Ubuntu Linux 7

1.4.1 安裝Python 7

1.4.2 打開IDLE 8

第 2章 你的第 一個Python程序 10

2.1 編寫Python程序 10

2.1.1 交互式窗口 10

2.1.2 編輯器窗口 12

2.2 搞點兒破壞 13

2.2.1 語法錯誤 13

2.2.2 運行時錯誤 14

2.2.3 鞏固練習 15

2.3 創建變量 15

2.3.1 賦值運算符 15

2.3.2 變量命名的法則 16

2.3.3 直白的名字勝過簡短的名字 17

2.3.4 Python變量命名約定 18

2.3.5 鞏固練習 18

2.4 在交互式窗口中檢查值 18

2.5 給自己留下有用的筆記 20

2.5.1 如何添加註釋 20

2.5.2 約定與抱怨 21

2.6 總結和更多學習資源 22

第3章 字符串與字符串方法 23

3.1 什麽是字符串 23

3.1.1 字符串類型 23

3.1.2 字符串字面量 24

3.1.3 確定字符串的長度 26

3.1.4 多行字符串 26

3.1.5 鞏固練習 28

3.2 拼接、索引、切片 28

3.2.1 拼接字符串 28

3.2.2 索引字符串 29

3.2.3 字符串切片 30

3.2.4 字符串是不可變的 33

3.2.5 鞏固練習 34

3.3 利用字符串方法操作字符串 34

3.3.1 大小寫轉換 34

3.3.2 移除字符串中的空白字符 35

3.3.3 判斷字符串是否以某個字符串開頭或結尾 36

3.3.4 字符串方法與不可變性 37

3.3.5 利用IDLE探索其他的字符串方法 37

3.3.6 鞏固練習 38

3.4 與用戶輸入交互 38

3.5 挑戰:分析用戶輸入 40

3.6 處理字符串和數字 40

3.6.1 在字符串上使用算術運算符 40

3.6.2 將字符串轉換為數字 42

3.6.3 將數字轉換為字符串 43

3.6.4 鞏固練習 43

3.7 讓輸出語句更流暢 44

3.8 在字符串中查找字符串 45

3.9 挑戰:把你的用戶變成菁瑛駭氪 47

3.10 總結和更多學習資源 48

第4章 數字與數學 49

4.1 整數與浮點數 49

4.1.1 整數 49

4.1.2 浮點數 50

4.1.3 鞏固練習 52

4.2 算術運算符和表達式 52

4.2.1 加法 52

4.2.2 減法 53

4.2.3 乘法 54

4.2.4 除法 54

4.2.5 整數除法 54

4.2.6 指數 55

4.2.7 求模運算符 56

4.2.8 算術表達式 57

4.3 挑戰:計算用戶輸入的數據 58

4.4 讓Python對你說謊 58

4.5 數學函數和數字方法 59

4.5.1 round()函數 59

4.5.2 abs()函數 61

4.5.3 pow()函數 61

4.5.4 檢查浮點數是否為整數 62

4.5.5 鞏固練習 62

4.6 改變數字的輸出樣式 63

4.7 復數 65

4.8 總結和更多學習資源 67

第5章 函數和循環 69

5.1 函數到底是什麽 69

5.1.1 函數即值 69

5.1.2 Python如何執行函數 71

5.1.3 函數可能會產生副作用 72

5.2 編寫自己的函數 72

5.2.1 函數的結構 73

5.2.2 調用用戶定義函數 76

5.2.3 沒有return語句的函數 77

5.2.4 為你的函數編寫文檔 77

5.2.5 鞏固練習 78

5.3 挑戰:溫度轉換 78

5.4 繞圈跑 79

5.4.1 while循環 79

5.4.2 for循環 81

5.4.3 嵌套循環 84

5.4.4 鞏固練習 85

5.5 挑戰:跟蹤投資情況 85

5.6 理解Python的作用域 86

5.6.1 什麽是作用域 86

5.6.2 作用域解析 87

5.6.3 LEGB原則 88

5.6.4 打破規則 88

5.7 總結和更多學習資源 89

第6章 尋找並修復代碼中的bug 91

6.1 使用調試控制窗口 91

6.1.1 調試窗口:概覽 92

6.1.2 Step按鈕 93

6.1.3 斷點和Go按鈕 94

6.1.4 Over和Out 96

6.2 消除bug 96

6.2.1 第(1)步:猜測問題出在哪裡 97

6.2.2 第(2)步:設置斷點並檢查代碼 98

6.2.3 第(3)步:確定錯誤並嘗試修復 99

6.2.4 第(4)步:重復第(1)步至第(3)步直到沒有bug 100

6.2.5 尋找bug的其他方法 100

6.3 總結和更多學習資源 102

第7章 條件邏輯與流程控制 103

7.1 值的比較 103

7.2 來點兒邏輯 106

7.2.1 and關鍵字 106

7.2.2 or關鍵字 107

7.2.3 not關鍵字 109

7.2.4 構造更為復雜的表達式 110

7.2.5 鞏固練習 111

7.3 控製程序的流向 112

7.3.1 if語句 112

7.3.2 else關鍵字 113

7.3.3 elif關鍵字 114

7.3.4 嵌套if語句 116

7.3.5 鞏固練習 119

7.4 挑戰:求因數 119

7.5 跳出模式 120

7.5.1 if語句與for循環 120

7.5.2 break 120

7.5.3 continue 121

7.5.4 forelse循環 122

7.5.5 鞏固練習 123

7.6 從錯誤中恢復 123

7.6.1 異常動物園 123

7.6.2 try和except關鍵字 125

7.6.3 空except分句 126

7.6.4 鞏固練習 126

7.7 事件模擬和概率計算 127

7.7.1 random模塊 127

7.7.2 質地均勻的硬幣 128

7.7.3 質地不均勻的硬幣 129

7.7.4 鞏固練習 130

7.8 挑戰:模擬拋硬幣實驗 130

7.9 挑戰:模擬選舉 131

7.10 總結和更多學習資源 131

第8章 元組、列表、字典 133

8.1 元組:不可變序列 133

8.1.1 什麽是元組 134

8.1.2 創建元組的方法 134

8.1.3 元組和字符串的相似之處 136

8.1.4 元組打包和解包 138

8.1.5 使用in檢查元組是否包含某個值 139

8.1.6 從函數返回多個值 139

8.1.7 鞏固練習 140

8.2 列表:可變序列 140

8.2.1 創建列表 140

8.2.2 基本操作 142

8.2.3 修改列表中的元素 143

8.2.4 增加和刪除元素的列表方法 144

8.2.5 數字列表 147

8.2.6 列表推導式 148

8.2.7 鞏固練習 149

8.3 列表與元組的嵌套、拷貝、排序 149

8.3.1 列表和元組的嵌套 149

8.3.2 拷貝列表 150

8.3.3 列表排序 152

8.3.4 鞏固練習 153

8.4 挑戰:列表的列表 153

8.5 挑戰:打油詩 154

8.6 在字典中保存關系 155

8.6.1 什麽是字典 155

8.6.2 創建字典 156

8.6.3 訪問字典的值 157

8.6.4 添加和刪除字典的值 158

8.6.5 檢查字典中是否存在某個鍵 159

8.6.6 迭代字典 159

8.6.7 字典的鍵和不可變性 160

8.6.8 嵌套字典 161

8.6.9 鞏固練習 162

8.7 挑戰:首府環游 162

8.8 選擇合適的數據結構 163

8.9 挑戰:貓貓戴帽帽 164

8.10 總結和更多學習資源 164

第9章 面向對象編程 166

9.1 定義類 166

9.1.1 類和實例 167

9.1.2 如何定義類 167

9.2 實例化對象 169

9.2.1 類和實例屬性 170

9.2.2 實例方法 171

9.2.3 鞏固練習 173

9.3 從其他類繼承 173

9.3.1 狗狗公園的例子 174

9.3.2 父類和子類 175

9.3.3 擴展父類的功能 176

9.3.4 鞏固練習 178

9.4 挑戰:建模農場 179

9.5 總結和更多學習資源 179

第 10章 模塊和包 181

10.1 使用模塊 181

10.1.1 創建模塊 182

10.1.2 在模塊中導入另一個模塊 182

10.1.3 import語句的變體 184

10.1.4 為什麽要用命名空間 186

10.1.5 鞏固練習 188

10.2 使用包 188

10.2.1 創建包 188

10.2.2 導入包中的模塊 189

10.2.3 從子包中導入模塊 192

10.2.4 鞏固練習 193

10.3 總結和更多學習資源 194

第 11章 文件輸入與輸出 195

11.1 文件和文件系統 195

11.1.1 文件的結構 195

11.1.2 文件系統 196

11.2 在Python中處理文件路徑 198

11.2.1 創建Path對象 198

11.2.2 絕對路徑和相對路徑 200

11.2.3 訪問文件路徑分量 201

11.2.4 檢查文件路徑是否存在 203

11.2.5 鞏固練習 203

11.3 常見文件系統操作 204

11.3.1 常見目錄和文件 204

11.3.2 遍歷文件夾內容 207

11.3.3 查找目錄中的文件 208

11.3.4 使用**通配符遞歸匹配 211

11.3.5 移動、刪除文件和文件夾 212

11.3.6 鞏固練習 214

11.4 挑戰:將所有圖片文件移動到

一個新目錄中 215

11.5 讀寫文件 215

11.5.1 什麽是文件 215

11.5.2 理解文本文件 216

11.5.3 Python文件對象 217

11.5.4 從文件中讀取數據 221

11.5.5 向文件寫入數據 222

11.5.6 鞏固練習 225

11.6 讀寫CSV數據 225

11.6.1 csv模塊 226

11.6.2 鞏固練習 231

11.7 挑戰:創建高分榜 232

11.8 總結和更多學習資源 233

第 12章 使用pip安裝包 234

12.1 使用pip安裝第三方包 234

12.1.1 將pip更新至最新版本 237

12.1.2 列出所有已安裝的包 238

12.1.3 安裝包 238

12.1.4 展示包的詳情 240

12.1.5 卸載包 241

12.2 第三方包的陷阱 242

12.3 總結和更多學習資源 243

第 13章 創建、修改PDF文件 244

13.1 從PDF文件中提取文本 244

13.1.1 打開PDF文件 245

13.1.2 提取頁面中的文本 247

13.1.3 匯總 248

13.1.4 鞏固練習 249

13.2 提取PDF中的頁面 249

13.2.1 使用PdfFileWriter類 249

13.2.2 從PDF中提取單個頁面 251

13.2.3 從PDF中提取多個頁面 252

13.2.4 鞏固練習 254

13.3 挑戰:PdfFileSplitter類 254

13.4 拼接、合並PDF 255

13.4.1 使用PdfFileMerger類 255

13.4.2 使用.append()拼接PDF 255

13.4.3 使用.merge()合並PDF 257

13.4.4 鞏固練習 259

13.5 旋轉、裁剪PDF頁面 259

13.5.1 旋轉頁面 259

13.5.2 裁剪頁面 263

13.5.3 鞏固練習 266

13.6 加密、解密PDF 266

13.6.1 加密PDF 267

13.6.2 解密PDF 268

13.6.3 鞏固練習 269

13.7 挑戰:整理PDF 269

13.8 從頭創建PDF文件 269

13.8.1 安裝reportlab 270

13.8.2 使用Canvas 類 270

13.8.3 設置頁面尺寸 271

13.8.4 設置字體屬性 272

13.9 總結和更多學習資源 274

第 14章 操作數據庫 276

14.1 SQLite簡介 276

14.1.1 SQLite基礎 277

14.1.2 使用with管理數據庫連接 278

14.1.3 操作數據庫表 279

14.1.4 執行多條SQL語句 281

14.1.5 使用參數化語句避免安全問題 282

14.1.6 獲得數據 283

14.1.7 鞏固練習 284

14.2 操作其他SQL數據庫的庫 285

14.3 總結和更多學習資源 285

第 15章 和Web交互 287

15.1 抓取並解析網站中的文本 287

15.1.1 你的第 一個網絡抓取器 288

15.1.2 使用字符串方法提取HTML中的文本 289

15.1.3 正則表達式入門 290

15.1.4 使用正則表達式提取HTML中的文本 293

15.1.5 鞏固練習 294

15.2 使用HTML解析器抓取網站 294

15.2.1 安裝Beautiful Soup 294

15.2.2 創建BeautifulSoup對象 295

15.2.3 使用BeautifulSoup對象 295

15.2.4 鞏固練習 297

15.3 和HTML表單交互 298

15.3.1 安裝MechanicalSoup 298

15.3.2 創建Browser對象 298

15.3.3 使用MechanicalSoup提交表單 299

15.3.4 鞏固練習 302

15.4 和網站進行實時交互 302

15.5 總結和更多學習資源 304

第 16章 科學計算與繪圖 306

16.1 使用NumPy操作矩陣 306

16.1.1 安裝NumPy 307

16.1.2 創建NumPy array 308

16.1.3 數組運算 309

16.1.4 堆疊、重構數組 311

16.1.5 鞏固練習 313

16.2 使用Matplotlib 繪制圖像 313

16.2.1 安裝Matplotlib 314

16.2.2 使用pyplot進行基本的圖像繪制 314

16.2.3 在同一窗口中繪制多幅圖像 317

16.2.4 為NumPy數組繪圖 319

16.2.5 完善圖像的格式 321

16.2.6 其他類型的圖像 325

16.2.7 將圖像保存為圖片 328

16.2.8 與圖像交互 329

16.2.9 鞏固練習 329

16.3 總結和更多學習資源 329

第 17章 圖形用戶界面 331

17.1 使用EasyGUI添加GUI元素 331

17.1.1 安裝EasyGUI 331

17.1.2 你的第 一個EasyGUI應用程序 332

17.1.3 EasyGUI的GUI元素庫 334

17.1.4 優雅地退出程序 338

17.1.5 鞏固練習 339

17.2 應用示例:PDF頁面旋轉程序 340

17.2.1 設計應用程序 340

17.2.2 實現設計 341

17.2.3 鞏固練習 344

17.3 挑戰:PDF頁面提取應用程序 345

17.4 Tkinter簡介 346

17.4.1 你的第 一個Tkinter應用程序 346

17.4.2 鞏固練習 348

17.5 使用小組件 348

17.5.1 Label小組件 349

17.5.2 Button小組件 351

17.5.3 Entry小組件 352

17.5.4 Text小組件 355

17.5.5 將小組件分配給frame 361

17.5.6 使用relief調整frame的外觀 364

17.5.7 小組件命名慣例 365

17.5.8 鞏固練習 366

17.6 使用佈局管理器控制佈局 366

17.6.1 .pack()佈局管理器 367

17.6.2 .place()佈局管理器 370

17.6.3 .grid()佈局管理器 371

17.6.4 鞏固練習 379

17.7 讓應用程序可交互 379

17.7.1 事件和事件處理器 380

17.7.2 .bind()方法 382

17.7.3 command屬性 383

17.7.4 鞏固練習 385

17.8 應用示例:溫度轉換器 386

17.9 應用示例:文本編輯器 389

17.10 挑戰:詩人回歸 396

17.11 總結和更多學習資源 397

第 18章 寫在最後 399

18.1 Python開發者的免費周報 399

18.2 推薦圖書:《深入理解Python特性》 400

18.3 Real Python視頻課程庫 400

18.4 致謝 401

版權聲明 404