Python編程快速上手 讓繁瑣工作自動化 第2版 Automate the Boring Stuff with Python : Practical Programming for Total Beginners, 2/e

Al Sweigart 王海鵬譯

下單後立即進貨 (約4週~6週)

  • Python編程快速上手 讓繁瑣工作自動化 第2版-preview-1
  • Python編程快速上手 讓繁瑣工作自動化 第2版-preview-2
Python編程快速上手 讓繁瑣工作自動化 第2版-preview-1

相關主題

商品描述

本書是一本面向初學者的Python編程實用指南。本書不僅介紹了Python語言的基礎知識,而且通過案例實踐教讀者如何使用這些知識和技能。本書的第一部分介紹了基本的Python編程概念,第二部分介紹了一些不同的任務,通過編寫Python程序,可以讓電腦自動完成它們。第二部分的每一章都有一些項目程序供讀者學習。每章的末尾還提供了一些習題和深入的實踐項目,幫助讀者鞏固所學的知識。附錄部分提供了所有習題的解答。

 

作者簡介

阿尔·斯维加特是一名专业的软件开发者,他教小孩和成人编程。他为初学者写了几本Python图书,包括《Python游戏编程快速上手》《Python密码学编程》和《Python和Pygame游戏开发指南》等。

目錄大綱

目  錄

 

第 一部分 Python編程基礎

第 1章 Python基礎 2

1.1 在交互式環境中輸入表達式 2

1.2 整型、浮點型和字符串數據類型 4

1.3 字符串連接和復制 5

1.4 在變量中保存值 6

1.4.1 賦值語句 6

1.4.2 變量名 7

1.5 第 一個程序 7

1.6 程序剖析 8

1.6.1 註釋 9

1.6.2 print()函數 9

1.6.3 input()函數 9

1.6.4 輸出用戶的名字 9

1.6.5 len()函數 10

1.6.6 str()、int()和float()函數 10

1.7 小結 13

1.8 習題 13

第 2章 控制流 15

2.1 布爾值 16

2.2 比較操作符 16

2.3 布爾操作符 18

2.3.1 二元布爾操作符 18

2.3.2 not操作符 19

2.4 混合布爾和比較操作符 19

2.5 控制流的元素 20

2.5.1 條件 20

2.5.2 代碼塊 20

2.6 程序執行 20

2.7 控制流語句 21

2.7.1 if語句 21

2.7.2 else語句 22

2.7.3 elif語句 22

2.7.4 while循環語句 27

2.7.5 惱人的循環 29

2.7.6 break語句 30

2.7.7 continue語句 32

2.7.8 for循環和range()函數 34

2.7.9 等價的while循環 36

2.7.10 range()函數的開始、停止和步長參數 36

2.8 導入模塊 37

2.9 用sys.exit()函數提前結束程序 38

2.10 小程序:猜數字 39

2.11 小程序:石頭、紙、剪刀 40

2.12 小結 43

2.13 習題 43

第3章 函數 45

3.1 def語句和參數 46

3.2 返回值和return語句 47

3.3 None值 48

3.4 關鍵字參數和print()函數 48

3.5 調用棧 49

3.6 局部和全局作用域 51

3.6.1 局部變量不能在全局作用域內使用 52

3.6.2 局部作用域不能使用其他局部作用域內的變量 52

3.6.3 全局變量可以在局部作用域中讀取 53

3.6.4 名稱相同的局部變量和全局變量 53

3.7 global語句 54

3.8 異常處理 56

3.9 小程序:Zigzag 57

3.10 小結 59

3.11 習題 59

3.12 實踐項目 59

3.12.1 Collatz序列 60

3.12.2 輸入驗證 60

第4章 列表 61

4.1 列表數據類型 61

4.1.1 用索引取得列表中的單個值 61

4.1.2 負數索引 63

4.1.3 利用切片取得子列表 63

4.1.4 用len()函數取得列表的長度 64

4.1.5 用索引改變列表中的值 64

4.1.6 列表連接和列表復制 64

4.1.7 用del語句從列表中刪除值 64

4.2 使用列表 65

4.2.1 列表用於循環 66

4.2.2 in和not in操作符 67

4.2.3 多重賦值技巧 67

4.2.4 enumerate()函數與列表一起使用 68

4.2.5 random.choice()和random.shuffle()函數與列表一起使用 68

4.3 增強的賦值操作 69

4.4 方法 69

4.4.1 用index()方法在列表中查找值 70

4.4.2 用append()和insert()方法在列表中添加值 70

4.4.3 用remove()方法從列表中刪除值 71

4.4.4 用sort()方法將列表中的值排序 71

4.4.5 使用reverse()方法反轉列表中的值 72

4.5 例子程序:神奇8球和列表 73

4.6 序列數據類型 74

4.6.1 可變和不可變數據類型 74

4.6.2 元組數據類型 76

4.6.3 用list()和tuple()函數來轉換類型 77

4.7 引用 77

4.7.1 標識和id()函數 78

4.7.2 傳遞引用 79

4.7.3 copy模塊的copy()和deepcopy()函數 80

4.8 小程序:Conway的生命游戲 80

4.9 小結 84

4.10 習題 84

4.11 實踐項目 85

4.11.1 逗號代碼 85

4.11.2 擲硬幣的連勝 85

4.11.3 字符圖網格 86

第5章 字典和結構化數據 87

5.1 字典數據類型 87

5.1.1 字典與列表 87

5.1.2 keys()、values()和items()方法 89

5.1.3 檢查字典中是否存在鍵或值 90

5.1.4 get()方法 90

5.1.5 setdefault()方法 91

5.2 美觀輸出 92

5.3 使用數據結構對真實世界建模 93

5.3.1 井字棋盤 93

5.3.2 嵌套的字典和列表 97

5.4 小結 98

5.5 習題 98

5.6 實踐項目 98

5.6.1 國際象棋字典驗證器 98

5.6.2 好玩游戲的物品清單 99

5.6.3 列表到字典的函數,針對好玩游戲的物品清單 99

第6章 字符串操作 101

6.1 處理字符串 101

6.1.1 字符串字面量 101

6.1.2 字符串索引和切片 103

6.1.3 字符串的in和not in操作符 104

6.2 將字符串放入其他字符串 104

6.3 有用的字符串方法 105

6.3.1 字符串方法upper()、lower()、isupper()和islower() 105

6.3.2 isX()字符串方法 106

6.3.3 字符串方法startswith()和endswith() 108

6.3.4 字符串方法join()和split() 108

6.3.5 使用partition()方法分隔字符串 109

6.3.6 用rjust()、ljust()和center()方法對齊文本 110

6.3.7 用strip()、rstrip()和lstrip()方法刪除空白字符 111

6.4 使用ord()和chr()函數的字符的數值 112

6.5 用pyperclip模塊復制粘貼字符串 112

6.6 項目:使用多剪貼板自動回復消息 113

第 1步:程序設計和數據結構 113

第 2步:處理命令行參數 114

第3步:復制正確的短語 114

6.7 項目:在Wiki標記中添加無序列表 115

第 1步:從剪貼板中復制和粘貼 115

第 2步:分離文本中的行,並添加星號 116

第3步:連接修改過的行 116

6.8 小程序:Pig Latin 117

6.9 小結 120

6.10 習題 120

6.11 實踐項目 121

6.11.1 表格輸出 121

6.11.2 僵屍骰子機器人 122

第二部分 自動化任務

第7章 模式匹配與正則表達式 126

7.1 不用正則表達式來查找文本模式 126

7.2 用正則表達式查找文本模式 128

7.2.1 創建正則表達式對象 128

7.2.2 匹配Regex對象 129

7.2.3 正則表達式匹配復習 129

7.3 用正則表達式匹配更多模式 130

7.3.1 利用括號分組 130

7.3.2 用管道匹配多個分組 131

7.3.3 用問號實現可選匹配 132

7.3.4 用星號匹配零次或多次 132

7.3.5 用加號匹配一次或多次 133

7.3.6 用花括號匹配特定次數 133

7.4 貪心和非貪心匹配 134

7.5 findall()方法 134

7.6 字符分類 135

7.7 建立自己的字符分類 136

7.8 插入字符和美元字符 136

7.9 通配字符 137

7.9.1 用點-星匹配所有字符 137

7.9.2 用句點字符匹配換行符 138

7.10 正則表達式符號復習 138

7.11 不區分大小寫的匹配 139

7.12 用sub()方法替換字符串 139

7.13 管理復雜的正則表達式 140

7.14 組合使用re.IGNORECASE、re.DOTALL和re.VERBOSE 140

7.15 項目:電話號碼和E-mail地址提取程序 141

第 1步:為電話號碼創建一個正則表達式 141

第 2步:為E-mail地址創建一個正則表達式 142

第3步:在剪貼板文本中找到所有匹配 143

第4步:將所有匹配連接成一個字符串,復制到剪貼板 143

第5步:運行程序 144

第6步:類似程序的構想 144

7.16 小結 144

7.17 習題 145

7.18 實踐項目 146

7.18.1 日期檢測 146

7.18.2 強口令檢測 146

7.18.3 strip()的正則表達式版本 147

第8章 輸入驗證 148

8.1 PyInputPlus模塊 149

8.1.1 關鍵字參數min、max、greaterThan和lessThan 150

8.1.2 關鍵字參數blank 150

8.1.3 關鍵字參數limit、timeout和default 151

8.1.4 關鍵字參數allowRegexes和blockRegexes 151

8.1.5 將自定義驗證函數傳遞給inputCustom() 152

8.2 項目:如何讓人忙幾個小時 153

8.3 項目:乘法測驗 154

8.4 小結 156

8.5 習題 156

8.6 實踐項目 157

8.6.1 三明治機 157

8.6.2 編寫自己的乘法測驗 157

第9章 讀寫文件 158

9.1 文件與文件路徑 158

9.1.1 Windows操作系統上的倒斜杠以及macOS和Linux操作系統上的正斜杠 159

9.1.2 使用/運算符連接路徑 160

9.1.3 當前工作目錄 161

9.1.4 主目錄 162

9.1.5 絕對路徑與相對路徑 162

9.1.6 用os.makedirs()創建新文件夾 163

9.1.7 處理絕對路徑和相對路徑 164

9.1.8 取得文件路徑的各部分 165

9.1.9 查看文件大小和文件夾內容 167

9.1.10 使用通配符模式修改文件列表 168

9.1.11 檢查路徑的有效性 169

9.2 文件讀寫過程 170

9.2.1 用open()函數打開文件 171

9.2.2 讀取文件內容 171

9.2.3 寫入文件 172

9.3 用shelve模塊保存變量 173

9.4 用pprint.pformat()函數保存變量 174

9.5 項目:生成隨機的測驗試捲文件 175

第 1步:將測驗數據保存在一個字典中 175

第 2步:創建測驗文件,並打亂問題的次序 176

第3步:創建答案選項 177

第4步:將內容寫入測驗試捲和答案文件 178

9.6 項目:創建可更新的多重剪貼板 179

第 1步:註釋和shelf設置 179

第 2步:用一個關鍵字保存剪貼板內容 180

第3步:列出關鍵字和加載關鍵字的內容 180

9.7 小結 181

9.8 習題 181

9.9 實踐項目 182

9.9.1 擴展多重剪貼板 182

9.9.2 瘋狂填詞 182

9.9.3 正則表達式查找 182

第 10章 組織文件 183

10.1 shutil模塊 183

10.1.1 復制文件和文件夾 183

10.1.2 文件和文件夾的移動與重命名 184

10.1.3 永久刪除文件和文件夾 185

10.1.4 用send2trash模塊安全地刪除 186

10.2 遍歷目錄樹 186

10.3 用zipfile模塊壓縮文件 188

10.3.1 讀取ZIP文件 188

10.3.2 從ZIP文件中解壓縮 189

10.3.3 創建和添加到ZIP文件 189

10.4 項目:將帶有美國風格日期的文件重命名為歐洲風格日期 190

第 1步:為美國風格的日期創建一個正則表達式 190

第 2步:識別文件名中的日期部分 191

第3步:構成新文件名,並對文件重命名 192

第4步:類似程序的想法 192

10.5 項目:將一個文件夾備份到一個ZIP文件 193

第 1步:弄清楚ZIP文件的名稱 193

第 2步:創建新ZIP文件 194

第3步:遍歷目錄樹並添加到ZIP文件 194

第4步:類似程序的想法 195

10.6 小結 195

10.7 習題 196

10.8 實踐項目 196

10.8.1 選擇性復制 196

10.8.2 刪除不需要的文件 196

10.8.3 消除缺失的編號 196

第 11章 調試 197

11.1 拋出異常 197

11.2 取得回溯字符串 199

11.3 斷言 200

在交通燈模擬中使用斷言 201

11.4 日誌 202

11.4.1 使用logging模塊 202

11.4.2 不要用print()調試 203

11.4.3 日誌級別 204

11.4.4 禁用日誌 204

11.4.5 將日誌記錄到文件 205

11.5 Mu的調試器 205

11.5.1 Continue 206

11.5.2 Step In 206

11.5.3 Step Over 206

11.5.4 Step Out 206

11.5.5 Stop 206

11.5.6 調試一個數字相加的程序 207

11.5.7 斷點 208

11.6 小結 209

11.7 習題 209

11.8 實踐項目 210

第 12章 從Web抓取信息 211

12.1 項目:利用webbrowser模塊的mapIt.py 211

第 1步:弄清楚URL 212

第 2步:處理命令行參數 212

第3步:處理剪貼板內容,加載瀏覽器 213

第4步:類似程序的想法 214

12.2 用requests模塊從Web下載文件 214

12.2.1 用requests.get()函數下載一個網頁 214

12.2.2 檢查錯誤 215

12.3 將下載的文件保存到硬盤 216

12.4 HTML 217

12.4.1 學習HTML的資源 217

12.4.2 快速復習 217

12.4.3 查看網頁的HTML源代碼 218

12.4.4 打開瀏覽器的開發者工具 218

12.4.5 使用開發者工具來尋找HTML元素 219

12.5 用bs4模塊解析HTML 220

12.5.1 從HTML創建一個BeautifulSoup對象 221

12.5.2 用select()方法尋找元素 221

12.5.3 通過元素的屬性獲取數據 223

12.6 項目: 打開所有搜索結果 223

第1步:獲取命令行參數,並請求查詢頁面 224

第 2步:找到所有的結果 224

第3步:針對每個結果打開Web瀏覽器 225

第4步:類似程序的想法 226

12.7 項目:下載所有XKCD漫畫 226

第 1步:設計程序 227

第 2步:下載網頁 228

第3步:尋找和下載漫畫圖像 228

第4步:保存圖像,找到前一張漫畫 229

第5步:類似程序的想法 230

12.8 用selenium模塊控制瀏覽器 230

12.8.1 啟動selenium控制的瀏覽器 231

12.8.2 在頁面中尋找元素 232

12.8.3 單擊頁面 234

12.8.4 填寫並提交表單 234

12.8.5 發送特殊鍵 234

12.8.6 單擊瀏覽器按鈕 235

12.8.7 關於selenium的更多信息 235

12.9 小結 235

12.10 習題 236

12.11 實踐項目 236

12.11.1 命令行電子郵件程序 236

12.11.2 圖像網站下載 237

12.11.3 2048 237

12.11.4 鏈接驗證 237

第 13章 處理Excel電子表格 238

13.1 Excel文檔 238

13.2 安裝openpyxl模塊 238

13.3 讀取Excel文檔 239

13.3.1 用openpyxl模塊打開Excel文檔 239

13.3.2 從工作簿中取得工作表 240

13.3.3 從表中取得單元格 240

13.3.4 列字母和數字之間的轉換 241

13.3.5 從表中取得行和列 242

13.3.6 工作簿、工作表、單元格 243

13.4 項目:從電子表格中讀取數據 244

第 1步:讀取電子表格數據 244

第 2步:填充數據結構 245

第3步:將結果寫入文件 246

第4步:類似程序的思想 247

13.5 寫入Excel文檔 247

13.5.1 創建並保存Excel文檔 247

13.5.2 創建和刪除工作表 248

13.5.3 將值寫入單元格 248

13.6 項目:更新電子表格 249

第 1步:利用更新信息建立數據結構 249

第 2步:檢查所有行,更新不正確的價格 250

第3步:類似程序的思想 251

13.7 設置單元格的字體風格 251

13.8 Font對象 252

13.9 公式 253

13.10 調整行和列 253

13.10.1 設置行高和列寬 254

13.10.2 合並和拆分單元格 254

13.10.3 凍結窗格 255

13.10.4 圖表 256

13.11 小結 257

13.12 習題 258

13.13 實踐項目 258

13.13.1 乘法表 258

13.13.2 空行插入程序 259

13.13.3 電子表格單元格翻轉程序 259

13.13.4 文本文件到電子表格 260

13.13.5 電子表格到文本文件 260

第 14章 處理Google電子表格 261

14.1 安裝和設置EZSheets 261

14.1.1 獲取證書和令牌文件 261

14.1.2 撤銷證書文件 262

14.2 Spreadsheet對象 263

14.2.1 創建、上傳和列出電子表格 264

14.2.2 電子表格的屬性 265

14.2.3 下載和上傳電子表格 265

14.2.4 刪除電子表格 266

14.3 工作表對象 266

14.3.1 讀取和寫入數據 267

14.3.2 創建和刪除工作表 271

14.3.3 復制工作表 272

14.4 利用Google Sheets 配額 272

14.5 小結 273

14.6 習題 273

14.7 實踐項目 273

14.7.1 下載Google Forms數據 274

14.7.2 將電子表格轉換為其他格式 274

14.7.3 查找電子表格中的錯誤 274

第 15章 處理PDF和Word文檔 275

15.1 PDF文檔 275

15.1.1 從PDF提取文本 275

15.1.2 解密PDF 277

15.1.3 創建PDF 277

15.2 項目:從多個PDF中合並選擇的頁面 281

第 1步:找到所有PDF文檔 281

第 2步:打開每個PDF文檔 282

第3步:添加每一頁 282

第4步:保存結果 283

第5步:類似程序的想法 283

15.3 Word文檔 284

15.3.1 讀取Word文檔 284

15.3.2 從.docx文檔中取得完整的文本 285

15.3.3 設置Paragraph和Run對象的樣式 286

15.3.4 創建帶有非默認樣式的Word文檔 287

15.3.5 Run屬性 287

15.3.6 寫入Word文檔 288

15.3.7 添加標題 290

15.3.8 添加換行符和換頁符 290

15.3.9 添加圖像 291

15.4 從Word文檔中創建PDF 291

15.5 小結 292

15.6 習題 292

15.7 實踐項目 293

15.7.1 PDF偏執狂 293

15.7.2 定製邀請函,保存為Word文檔 293

15.7.3 蠻力PDF口令破解程序 294

第 16章 處理CSV文件和 JSON數據 295

16.1 csv模塊 295

16.1.1 reader對象 296

16.1.2 在for循環中,從reader對象讀取數據 297

16.1.3 writer對象 297

16.1.4 delimiter和lineterminator關鍵字參數 298

16.1.5 DictReader和DictWriter CSV對象 299

16.2 項目:從CSV文件中刪除標題行 300

第 1步:循環遍歷每個CSV文件 301

第 2步:讀入CSV文件 301

第3步:寫入CSV文件,沒有第 一行 302

第4步:類似程序的想法 303

16.3 JSON和API 303

16.4 json模塊 304

16.4.1 用loads()函數讀取JSON 304

16.4.2 用dumps函數寫出JSON 304

16.5 項目:取得當前的天氣數據 305

第 1步:從命令行參數獲取位置 305

第 2步:下載JSON數據 306

第3步:加載JSON數據並輸出天氣 307

第4步:類似程序的想法 308

16.6 小結 308

16.7 習題 308

16.8 實踐項目 309

第 17章 保持時間、計劃任務和啟動程序 310

17.1 time模塊 310

17.1.1 time.time()函數 310

17.1.2 time.sleep()函數 311

17.2 數字四捨五入 312

17.3 項目:超級秒錶 312

第 1步:設置程序來記錄時間 313

第 2步:記錄並輸出單圈時間 313

第3步:類似程序的想法 314

17.4 datetime模塊 314

17.4.1 timedelta數據類型 315

17.4.2 暫停直至特定日期 317

17.4.3 將datetime對象轉換為字符串 317

17.4.4 將字符串轉換成datetime對象 318

17.5 回顧Python的時間函數 318

17.6 多線程 319

17.6.1 向線程的目標函數傳遞參數 321

17.6.2 並發問題 321

17.7 項目:多線程XKCD下載程序 322

第 1步:修改程序以使用函數 322

第 2步:創建並啟動線程 323

第3步:等待所有線程結束 323

17.8 從Python啟動其他程序 324

17.8.1 向Popen()傳遞命令行參數 325

17.8.2 Task Scheduler、launchd和cron 326

17.8.3 用Python打開網站 326

17.8.4 運行其他Python腳本 326

17.8.5 用默認的應用程序打開文件 327

17.9 項目:簡單的倒計時程序 327

第 1步:倒計時 328

第 2步:播放聲音文件 328

第3步:類似程序的想法 329

17.10 小結 329

17.11 習題 329

17.12 實踐項目 330

17.12.1 美化的秒錶 330

17.12.2 計劃的Web漫畫下載 330

第 18章 發送電子郵件和短信 331

18.1 使用Gmail API發送和接收電子郵件 331

18.1.1 啟用Gmail API 332

18.1.2 從Gmail賬戶發送郵件 332

18.1.3 從Gmail賬戶讀取郵件 333

18.1.4 從Gmail賬戶中搜索郵件 334

18.1.5 從Gmail賬戶下載附件 335

18.2 SMTP 335

18.3 發送電子郵件 335

18.3.1 連接到SMTP服務器 336

18.3.2 發送SMTP的“Hello”消息 337

18.3.3 開始TLS加密 337

18.3.4 登錄到SMTP服務器 337

18.3.5 發送電子郵件 338

18.3.6 從SMTP服務器斷開 338

18.4 IMAP 338

18.5 用IMAP獲取和刪除電子郵件 339

18.5.1 連接到IMAP服務器 339

18.5.2 登錄到IMAP服務器 340

18.5.3 搜索電子郵件 340

18.5.4 取郵件並標記為已讀 343

18.5.5 從原始消息中獲取電子郵件地址 344

18.5.6 從原始消息中獲取正文 344

18.5.7 刪除電子郵件 345

18.5.8 從IMAP服務器斷開 346

18.6 項目:向會員發送會費提醒電子郵件 346

第 1步:打開Excel文件 346

第 2步:查找所有未支付會費的成員 347

第3步:發送定製的電子郵件提醒 348

18.7 使用短信電子郵件網關發送短信 349

18.8 用Twilio發送短信 350

18.8.1 註冊Twilio賬號 350

18.8.2 發送短信 351

18.9 項目:“只給我發短信”模塊 352

18.10 小結 353

18.11 習題 354

18.12 實踐項目 354

18.12.1 隨機分配家務活的電子郵件程序 354

18.12.2 傘提醒程序 354

18.12.3 自動退訂 354

18.12.4 通過電子郵件控制你的電腦 355

第 19章 操作圖像 356

19.1 電腦圖像基礎 356

19.1.1 顏色和RGBA值 356

19.1.2 坐標和Box元組 357

19.2 用pillow操作圖像 358

19.2.1 處理Image數據類型 359

19.2.2 裁剪圖像 360

19.2.3 復制和粘貼圖像到其他圖像 361

19.2.4 調整圖像大小 363

19.2.5 旋轉和翻轉圖像 363

19.2.6 更改單個像素 365

19.3 項目:添加徽標 366

第 1步:打開徽標圖像 366

第 2步:遍歷所有文件並打開圖像 367

第3步:調整圖像的大小 368

第4步:添加徽標,並保存更改 369

第5步:類似程序的想法 370

19.4 在圖像上繪畫 370

19.4.1 繪制形狀 370

19.4.2 繪制文本 372

19.5 小結 373

19.6 習題 374

19.7 實踐項目 374

19.7.1 擴展和修正本章項目的程序 374

19.7.2 在硬盤上識別照片文件夾 374

19.7.3 定製的座位卡 375

第 20章 用GUI自動化控制鍵盤和鼠標 376

20.1 安裝pyautogui模塊 376

20.2 在macOS上設置無障礙應用程序 377

20.3 走對路 377

20.3.1 暫停和自動防故障裝置 377

20.3.2 通過註銷關閉所有程序 377

20.4 控制鼠標指針移動 377

20.4.1 移動鼠標指針 378

20.4.2 獲取鼠標指針位置 379

20.5 控制鼠標交互 379

20.5.1 點擊鼠標 380

20.5.2 拖動鼠標 380

20.5.3 滾動鼠標 382

20.6 規劃鼠標運動 382

20.7 處理屏幕 383

20.7.1 獲取屏幕快照 383

20.7.2 分析屏幕快照 383

20.8 圖像識別 384

20.9 獲取窗口信息 385

20.9.1 獲取活動窗口 386

20.9.2 獲取窗口的其他方法 387

20.9.3 操縱窗口 387

20.10 控制鍵盤 389

20.10.1 通過鍵盤發送一個字符串 389

20.10.2 鍵名 390

20.10.3 按下和釋放鍵盤按鍵 391

20.10.4 快捷鍵組合 391

20.11 設置GUI自動化腳本 391

20.12 復習PyAutoGUI的函數 392

20.13 項目:自動填表程序 393

第 1步:弄清楚步驟 394

第 2步:建立坐標 395

第3步:開始輸入數據 396

第4步:處理選擇列表和單選按鈕 396

第5步:提交表單並等待 397

20.14 顯示消息框 398

20.15 小結 399

20.16 習題 399

20.17 實踐項目 400

20.17.1 看起來很忙 400

20.17.2 使用剪貼板讀取文本字段 400

20.17.3 即時通信機器人 401

20.17.4 玩游戲機器人指南 401

附錄A 安裝第三方模塊 402

A.1 pip工具 402

A.2 安裝第三方模塊 403

A.3 為Mu編輯器安裝模塊 404

附錄B 運行程序 406

B.1 從命令行窗口運行程序 406

B.2 在Windows操作系統上運行Python程序 407

B.3 在macOS上運行Python程序 408

B.4 在Ubuntu Linux操作系統上運行Python程序 408

B.5 運行Python程序時禁用斷言 409