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

Al Sweigart 王海鵬譯

  • Python 編程快速上手 : 讓繁瑣工作自動化, 2/e (Automate the Boring Stuff with Python : Practical Programming for Total Beginners, 2/e)-preview-1
  • Python 編程快速上手 : 讓繁瑣工作自動化, 2/e (Automate the Boring Stuff with Python : Practical Programming for Total Beginners, 2/e)-preview-2
Python 編程快速上手 : 讓繁瑣工作自動化, 2/e (Automate the Boring Stuff with Python : Practical Programming for Total Beginners, 2/e)-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 Collat​​z序列60
3.12.2 輸入驗證60

第4章列表61
4.1 列表數據類型61
4.2 使用列表65
4.3 增強的賦值操作69
4.4 方法69
4.5 例子程序:神奇8球和列表73
4.6 序列數據類型74
4.7 引用77
4.8 小程序:Conway的生命遊戲80
4.9 小結84
4.10 習題84
4.11 實踐項目85

第5章字典和結構化數據87
5.1 字典數據類型87
5.2 美觀輸出92
5.3 使用數據結構對真實世界建模93
5.4 小結98
5.5 習題98
5.6 實踐項目98

第6章字符串操作101
6.1 處理字符串101
6.2 將字符串放入其他字符串104
6.3 有用的字符串方法105
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

第二部分自動化任務
第7章模式匹配與正則表達式126
7.1 不用正則表達式來查找文本模式126
7.2 用正則表達式查找文本模式128
7.3 用正則表達式匹配更多模式130
7.4 貪心和非貪心匹配134
7.5 findall()方法134
7.6 字符分類135
7.7 建立自己的字符分類136
7.8 插入字符和美元字符136
7.9 通配字符137
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

第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.2 文件讀寫過程170
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

第10章組織文件183
10.1 shutil模塊183
10.2 遍歷目錄樹186
10.3 用zipfile模塊壓縮文件188
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

第11章調試197
11.1 拋出異常197
11.2 取得回溯字符串199
11.3 斷言200
在交通燈模擬中使用斷言201
11.4 日誌202
11.5 Mu的調試器205
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.3 將下載的文件保存到硬盤216
12.4 HTML 217
12.5 用bs4模塊解析HTML 220
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.9 小結235
12.10 習題236
12.11 實踐項目236

第13章處理Excel電子表格238
13.1 Excel文檔238
13.2 安裝openpyxl模塊238
13.3 讀取Excel文檔239
13.4 項目:從電子表格中讀取數據244
第1步:讀取電子表格數據244
第2步:填充數據結構245
第3步:將結果寫入文件246
第4步:類似程序的思想247
13.5 寫入Excel文檔247
13.6 項目:更新電子表格249
第1步:利用更新信息建立數據結構249
第2步:檢查所有行,更新不正確的價格250
第3步:類似程序的思想251
13.7 設置單元格的字體風格251
13.8 Font對象252
13.9 公式253
13.10 調整行和列253
13.11 小結257
13.12 習題258
13.13 實踐項目258

第14章處理Google電子表格261
14.1 安裝和設置EZSheets 261
14.2 Spreadsheet對象263
14.3 工作表對象266
14.4 利用Google Sheets 配額272
14.5 小結273
14.6 習題273
14.7 實踐項目273

第15章處理PDF和Word文檔275
15.1 PDF文檔275
15.2 項目:從多個PDF中合併選擇的頁面281
第1步:找到所有PDF文檔281
第2步:打開每個PDF文檔282
第3步:添加每一頁282
第4步:保存結果283
第5步:類似程序的想法283
15.3 Word文檔284
15.4 從Word文檔中創建PDF 291
15.5 小結292
15.6 習題292
15.7 實踐項目293

第16章處理CSV文件和JSON數據295
16.1 csv模塊295
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.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.2 數字四捨五入312
17.3 項目:超級秒錶312
第1步:設置程序來記錄時間313
第2步:記錄並輸出單圈時間313
第3步:類似程序的想法314
17.4 datetime模塊314
17.5 回顧Python的時間函數318
17.6 多線程319
17.7 項目:多線程XKCD下載程序322
第1步:修改程序以使用函數322
第2步:創建並啟動線程323
第3步:等待所有線程結束323
17.8 從Python啟動其他程序324
17.9 項目:簡單的倒計時程序327
第1步:倒計時328
第2步:播放聲音文件328
第3步:類似程序的想法329
17.10 小結329
17.11 習題329
17.12 實踐項目330

第18章發送電子郵件和短信331
18.1 使用Gmail API發送和接收電子郵件331
18.2 SMTP 335
18.3 發送電子郵件335
18.4 IMAP 338
18.5 用IMAP獲取和刪除電子郵件339
18.6 項目:向會員發送會費提醒電子郵件346
第1步:打開Excel文件346
第2步:查找所有未支付會費的成員347
第3步:發送定制的電子郵件提醒348
18.7 使用短信電子郵件網關發送短信349
18.8 用Twilio發送短信350
18.9 項目:“只給我發短信”模塊352
18.10 小結353
18.11 習題354
18.12 實踐項目354

第19章操作圖像356
19.1 計算機圖像基礎356
19.2 用pillow操作圖像358
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

第20章用GUI自動化控制鍵盤和鼠標376
20.1 安裝pyautogui模塊376
20.2 在macOS上設置無障礙應用程序377
20.3 走對路377
20.4 控制鼠標指針移動377
20.5 控制鼠標交互379
20.6 規劃鼠標運動382
20.7 處理屏幕383
20.8 圖像識別384
20.9 獲取窗口信息385
20.10 控制鍵盤389
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

附錄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