python專案開發例項-Python專案案例開發從入門到實戰——爬蟲、遊戲

程式設計大樂趣發表於2020-10-28

資料簡介:

本書以Python 3.5為程式設計環境,從基本的程式設計思想入手,逐步展開Python語言教學,是一本面向廣大程式設計學習者的程式設計類圖書。本書以案例帶動知識點的講解,將Python知識點分解到各個不同的案例,每個案例各有側重點,同時展示實際專案的設計思想和設計理念,使讀者可以舉一反三。   本書案例具有實用性,例如校園網搜尋引擎、小小翻譯器、抓取百度圖片這些爬蟲案例略加修改可以應用到實際專案中;還有通過微信通訊協議開發微信機器人、機器學習的文字分類、基於卷積神經網路的手寫體識別等案例;另外是一些大家耳熟能詳的遊戲案例,例如連連看、推箱子、中國象棋、網路五子棋、兩人麻將、人物拼圖和飛機大戰等遊戲。通過本書,讀者將掌握Python程式設計技術和技巧,學會物件導向的設計方法,瞭解程式設計的所有相關內容。本書不僅為讀者列出了完整的程式碼,同時對所有的原始碼都進行了非常詳細的解釋,通俗易懂、圖文並茂。掃描每章提供的二維碼可觀看知識點的視訊講解。   本書適用於Python語言學習者、程式設計人員和遊戲程式設計愛好者。

資料目錄:

第1章 Python基礎知識 1

1.1 Python語言簡介 1

1.2 Python語法基礎 2

1.2.1 Python資料型別 2

1.2.2 序列資料結構 4

1.2.3 Python控制語句 12

1.2.4 Python函式與模組 18

1.3 Python物件導向設計 22

1.3.1 定義和使用類 22

1.3.2 建構函式 23

1.3.3 解構函式 24

1.3.4 例項屬性和類屬性 24

1.3.5 私有成員與公有成員 25

1.3.6 方法 26

1.3.7 類的繼承 27

1.3.8 多型 29

1.3.9 物件導向應用案例——撲克牌發牌程式 31

1.4 Python圖形介面設計 34

1.4.1 建立Windows視窗 35

1.4.2 幾何佈局管理器 35

1.4.3 Tkinter元件 39

1.4.4 Tkinter字型 49

1.4.5 Python事件處理 51

1.4.6 圖形介面設計應用案例——開發猜數字遊戲 55

1.5 Python檔案的使用 57

1.5.1 開啟/建立檔案 57

1.5.2 讀取文字檔案 59

1.5.3 寫文字檔案 60

1.5.4 檔案內移動 62

1.5.5 檔案的關閉 63

1.5.6 二進位制檔案的讀/寫 64

1.6 Python的第三方庫 66

第2章 序列應用——猜單詞遊戲 67

2.1 猜單詞遊戲功能介紹 67

2.2 程式設計的思路 67

2.3 關鍵技術——random模組 68

2.4 程式設計的步驟 71

第3章 資料庫應用——智力問答測試 73

3.1 智力問答測試功能介紹 73

3.2 程式設計的思路 73

3.3 關鍵技術 74

3.3.1 訪問資料庫的步驟 74

3.3.2 建立資料庫和表 75

3.3.3 資料庫的插入、更新和刪除操作 76

3.3.4 資料庫表的查詢操作 77

3.3.5 資料庫使用例項——學生通訊錄 77

3.4 程式設計的步驟 80

3.4.1 生成試題庫 80

3.4.2 讀取試題資訊 81

3.4.3 介面和邏輯設計 81

第4章 呼叫百度API應用——小小翻譯器 83

4.1 小小翻譯器功能介紹 83

4.2 程式設計的思路 83

4.3 關鍵技術 84

4.3.1 urllib庫簡介 84

4.3.2 urllib庫的基本使用 84

4.4 程式設計的步驟 90

4.4.1 設計介面 90

4.4.2 使用百度翻譯開放平臺API 90

第5章 爬蟲應用——校園網搜尋引擎 95

5.1 校園網搜尋引擎功能分析 95

5.2 校園網搜尋引擎系統設計 95

5.3 關鍵技術 98

5.3.1 正規表示式 98

5.3.2 中文分詞 103

5.3.3 安裝和使用jieba 103

5.3.4 為jieba新增自定義詞典 104

5.3.5 文字分類的關鍵詞提取 105

5.3.6 deque 106

5.4 程式設計的步驟 107

5.4.1 資訊採集模組——網路爬蟲的實現 107

5.4.2 索引模組——建立倒排詞表 111

5.4.3 網頁排名和搜尋模組 113

第6章 爬蟲應用——抓取百度圖片 116

6.1 程式功能介紹 116

6.2 程式設計的思路 116

6.3 關鍵技術 117

6.3.1 圖片檔案下載到本地 117

6.3.2 爬取指定網頁中的圖片 117

6.3.3 BeautifulSoup庫概述 119

6.3.4 用BeautifulSoup庫操作解析HTML文件樹 121

6.3.5 requests庫的使用 125

6.4 程式設計的步驟 133

6.4.1 分析網頁原始碼和網頁結構 133

6.4.2 設計程式碼 136

第7章 itchat應用——微信機器人 139

7.1 itchat功能介紹 139

7.2 程式設計的思路 140

7.3 關鍵技術 140

7.3.1 安裝itchat 140

7.3.2 itchat的登入微信 140

7.3.3 itchat的訊息型別 141

7.3.4 itchat回覆訊息 143

7.3.5 itchat獲取賬號 145

7.3.6 itchat的一些簡單應用 147

7.3.7 Python呼叫圖靈機器人API實現簡單的人機互動 150

7.4 程式設計的步驟 152

7.5 開發訊息同步機器人 153

第8章 微信網頁版協議應用——微信機器人 155

8.1 微信網頁版機器人功能介紹 155

8.2 微信網頁版機器人設計思路 155

8.2.1 分析微信網頁版API 155

8.2.2 API彙總 158

8.2.3 其他說明 164

8.3 程式設計的步驟 166

8.3.1 微信網頁版的執行流程 166

8.3.2 程式目錄 167

8.3.3 微信網頁版執行程式碼的實現 167

8.4 擴充套件功能 170

8.4.1 自動回覆 170

8.4.2 群發訊息、定時傳送訊息、好友狀態檢測 173

8.4.3 自動邀請好友加入群聊 175

第9章 影像處理——生成二維碼和驗證碼 178

9.1 二維碼介紹 178

9.2 二維碼生成和解析關鍵技術 179

9.2.1 qrcode庫的使用 179

9.2.2 PIL庫的使用 182

9.3 二維碼生成和解析程式設計的步驟 184

9.3.1 生成帶有圖示的二維碼 184

9.3.2 Python解析二維碼圖片 186

9.4 用Python生成驗證碼圖片 186

第10章 益智遊戲——連連看遊戲 189

10.1 連連看遊戲介紹 189

10.2 程式設計的思路 190

10.3 關鍵技術 200

10.3.1 圖形繪製——Tinker的Canvas元件 200

10.3.2 Canvas上的圖形物件 200

10.4 程式設計的步驟 210

第11章 益智遊戲——推箱子游戲 215

11.1 推箱子游戲介紹 215

11.2 程式設計的思路 216

11.3 關鍵技術 217

11.4 程式設計的步驟 218

第12章 娛樂遊戲——兩人麻將遊戲 224

12.1 麻將遊戲介紹 224

12.1.1 麻將術語 224

12.1.2 牌數 224

12.2 兩人麻將遊戲設計的思路 225

12.2.1 素材圖片 225

12.2.2 遊戲的邏輯實現 226

12.2.3 碰/吃牌的判斷 226

12.2.4 和牌演算法 227

12.2.5 實現計算機智慧出牌 231

12.3 關鍵技術 233

12.3.1 聲音的播放 233

12.3.2 返回對應位置的元件 233

12.3.3 對儲存麻將牌的列表排序 234

12.4 兩人麻將遊戲設計的步驟 235

12.4.1 設計麻將牌類 235

12.4.2 設計遊戲主程式 237

第13章 網路程式設計案例——基於TCP的線上聊天程式 247

13.1 基於TCP的線上聊天程式簡介 247

13.2 關鍵技術 247

13.2.1 網際網路TCP/IP協議 247

13.2.2 IP協議和埠 248

13.2.3 TCP協議和UDP協議 249

13.2.4 Socket 249

13.2.5 多執行緒程式設計 254

13.3 線上聊天程式設計的步驟 256

13.3.1 線上聊天程式的伺服器端 256

13.3.2 線上聊天程式的客戶端 259

第14章 網路通訊案例——基於UDP的網路五子棋

遊戲 263

14.1 網路五子棋遊戲簡介 263

14.2 五子棋遊戲的設計思想 264

14.3 關鍵技術 267

14.3.1 UDP程式設計 267

14.3.2 自定義網路五子棋遊戲的通訊協議 269

14.4 網路五子棋遊戲程式設計的步驟 271

14.4.1 伺服器端程式設計的步驟 271

14.4.2 客戶端程式設計的步驟 276

第15章 益智遊戲——中國象棋 281

15.1 中國象棋介紹 281

15.2 關鍵技術 282

15.3 中國象棋的設計思路 284

15.4 中國象棋實現的步驟 287

第16章 娛樂遊戲——人物拼圖遊戲 297

16.1 人物拼圖遊戲介紹 297

16.2 程式設計的思路 298

16.3 關鍵技術 298

16.3.1 複製和貼上影像區域 298

16.3.2 調整尺寸和旋轉 298

16.3.3 轉換成灰度影像 299

16.3.4 對畫素進行操作 300

16.4 程式設計的步驟 300

16.4.1 Python處理圖片切割 300

16.4.2 遊戲的邏輯實現 302

第17章 基於Pygame的遊戲設計 306

17.1 Pygame基礎知識 306

17.1.1 安裝Pygame庫 306

17.1.2 Pygame的模組 306

17.2 Pygame的使用 309

17.2.1 Pygame開發遊戲的主要流程 309

17.2.2 Pygame的影像/圖形繪製 311

17.2.3 Pygame的鍵盤和滑鼠事件的處理 314

17.2.4 Pygame的字型使用 319

17.2.5 Pygame的聲音播放 320

17.2.6 Pygame的精靈使用 321

17.3 基於Pygame設計貪吃蛇遊戲 326

17.4 基於Pygame設計飛機大戰遊戲 333

17.4.1 遊戲角色 333

17.4.2 遊戲介面顯示 336

17.4.3 遊戲的邏輯實現 338

第18章 機器學習案例——基於樸素貝葉斯演算法的

文字分類 343

18.1 文字分類功能介紹 343

18.2 程式設計的思路 343

18.3 關鍵技術 344

18.3.1 貝葉斯演算法的理論基礎 344

18.3.2 樸素貝葉斯分類 346

18.3.3 使用Python進行文字分類 348

18.4 程式設計的步驟 348

18.4.1 收集訓練資料 348

18.4.2 準備資料 349

18.4.3 分析資料 349

18.4.4 訓練演算法 350

18.4.5 測試演算法並改進 353

18.4.6 使用演算法進行文字分類 354

18.5 使用樸素貝葉斯分類演算法過濾垃圾郵件 355

18.5.1 收集訓練資料 355

18.5.2 將文字檔案解析為詞向量 356

18.5.3 使用樸素貝葉斯演算法進行郵件分類 357

18.5.4 改進演算法 359

18.6 使用Scikit-Learn庫進行文字分類 360

18.6.1 文字分類常用的類和函式 360

18.6.2 案例實現 363

第19章 深度學習案例——基於卷積神經網路的

手寫體識別 366

19.1 手寫體識別案例需求 366

19.2 深度學習的概念及關鍵技術 366

19.2.1 神經網路模型 366

19.2.2 深度學習之卷積神經網路 367

19.3 Python深度學習庫——Keras 372

19.3.1 Keras的安裝 372

19.3.2 Keras的網路層 372

19.3.3 用Keras構建神經網路 375

19.4 程式設計的思路 376

19.5 程式設計的步驟 377

19.5.1 MNIST資料集 377

19.5.2 手寫體識別案例實現 378

19.5.3 預測自己手寫影像 382

第20章 詞雲實戰——爬取豆瓣影評生成詞雲 383

20.1 功能介紹 383

20.2 程式設計的思路 384

20.3 關鍵技術 385

20.3.1 安裝WordCloud 385

20.3.2 使用WordCloud 385

20.4 程式設計的步驟 389

參考文獻 397

相關文章