內容簡介
本書是一本覆蓋研究生、本專科生、中學生等所有Python學習者的入門書。以夠用、適用、易學”為原則,組織、設計全書的框架和內容,全書共包括四篇:第一篇——營造環境,主要闡述學習的環境與平台安裝、IDLE與Pycharm的使用、常見的內外部模組及其安裝。第二篇——掀起頭蓋,重點討論Python的主要語法:數據類型、變數常量、語句、輸入輸出、函式與模組化、檔案與對象、類、異常。第三篇——實戰演習,主要展示了四個完整的套用案例,涵蓋桌面小遊戲、數據挖掘與分析、圖像識別與機器學習、智慧型檢測與控制。第四篇——繼續前進,著重討論了腳本檔案的打包、代碼的Pythonic化和Python的博大精深。本書在內容組織和框架設計上具有兩個鮮明特點:全案例、基於讀者學習。從讀者學習的角度,組織每個章節的內容體系,幾乎所有的知識點都輔之以範例,同時給出了四個完整的綜合性工程案例,這些都十分有利於學習者學習和模仿。本書適合於所有層次對Python感興趣的專業和非專業的讀者。
zhua曲子白渡白顆
目錄
第一篇 營造環境
第1章 Python及其安裝
1.1 我為什麼要學習Python
1.1.1 它的廣泛性
1.1.2 它的新穎性
1.1.3 它的生態性
1.1.4 Python的套用領域舉例
1.1.5 Python的局限性
1.2 學習Python的必備神器
1.2.1 Python的底細
1.2.2 PyCharm
1.3 安裝和設定Python
1.3.1 獲取Python
1.3.2 安裝Python
1.3.3 設定Python
思考與實踐
第2章 IDLE的使用
2.1 IDLE的安裝與設定
2.1.1 IDLE的安裝
2.1.2 IDLE的啟動
2.1.3 IDLE的個性化設定
2.2 Edit編輯模式與Shell命令行模式的切換
2.2.1 Edit編輯模式與Shell命令行模式的切換
2.2.2 IDLE的文本編輯功能
2.3 在IDLE中運行程式
2.3.1 在Edit模式下運行程式
2.3.2 在Shell模式下運行程式
2.4 IDLE的程式調試功能
2.4.1 兩種調試方法
2.4.2 在Shell模式下的程式調試
2.4.3 在Edit模式下的程式調試
2.4.4 如何斷點調試
2.5 在Shell模式下如何清屏
思考與實踐
第3章 安裝PyCharm
3.1 PyCharm及其安裝
3.1.1 PyCharm的三種版本形式
3.1.2 獲取PyCharm
3.1.3 安裝PyCharm
3.2 PyCharm的個性化設定
3.2.1 設定入口
3.2.2 外觀設定
3.2.3 Editor與自動代碼補齊設定
3.2.4 解釋器(Interpreter)設定
3.2.5 運行鍵設定
思考與實踐
第4章 Python的標準資源
4.1 Python 有哪些內置的標準模組
4.1.1 通過help()命令查看內置模組
4.1.2 通過IDLE的help選單查看內置模組
4.1.3 常用內置模組及其功能介紹
4.1.4 內置模組的主要函式(方法)簡介
4.2 內置模組的套用舉例
4.2.1 路徑相關的舉例
4.2.2 時間相關的舉例
4.3 Python有哪些內置函式
4.3.1 如何查看Python有哪些內置函式
4.3.2 內置函式及其功能
4.3.3 內置函式的套用舉例
思考與實踐
第5章 Python的外部資源
5.1 為什麼要安裝外部模組
5.2 如何安裝外部模組
5.2.1 升級更新安裝工具
5.2.2 使用pip安裝外部模組
5.2.3 使用easy_install安裝外部模組
5.3 安裝後的外部模組導入PyCharm
5.4 通過PyCharm安裝外部庫
5.4.1 通過Project Interpreter方式安裝外部庫
5.4.2 通過Plugins方式安裝外部庫
5.5 常用的外部模組及其套用
5.5.1 常用的外部模組
5.5.2 外部模組的套用舉例
思考與實踐
第二篇 掀起頭蓋
第6章 我的Python處女作
6.1 新建工程
6.1.1 新建工程
6.1.2 新建Python檔案
6.1.3 配置工程並運行
6.2 關於工程及其要注意的三個事項
6.2.1 關於首次運行程式的注意事項
6.2.2 關於工程的必要設定
6.2.3 關於運行與調試功能的設定問題
6.2.4 關於三種運行方式
思考與實踐
第7章 Python的數據類型
7.1 Python程式的基本組成
7.1.1 一個溫度轉換的例子
7.1.2 程式的注釋
7.1.3 語句
7.1.4 常量
7.1.5 變數
7.1.6 標識符
7.1.7 函式
7.2 Python的數據類型
7.2.1 Python的數據類型分類
7.2.2 Python 中變數的基本特性
7.3 Python的常量
7.3.1 數字
7.3.2 字元串
7.3.3 布爾值
7.3.4 空值
7.4 Python的基本類型變數
7.4.1 變數的使用
7.4.2 基本變數的賦值
7.4.3 變數的地址
7.5 Python的構造類型變數
7.5.1 String(字元串)
7.5.2 list(列表)
7.5.3 tuple(元組)
7.5.4 Set(集合)
7.5.5 Dictionary(字典)
7.6 歸納與總結
7.6.1 各種類型的相互轉化
7.6.2 字元串、列表、元組、字典和集合的異同點
思考與實踐
第8章 Python的數據運算
8.1 運算的分類
8.2 運算符的功能與特性
8.2.1 算術運算
8.2.2 比較運算
8.2.3 賦值運算
8.2.5 成員運算
8.2.6 身份運算
8.2.7 按位運算符
8.3 運算的優先權
8.3.1 優先權與結合性
8.3.2 優先權的使用舉例
思考與實踐
第9章 鍵盤輸入與螢幕輸出
9.1 鍵盤輸入與input()函式
9.1.1 input()函式
9.1.2 類型之間的轉換
9.2 螢幕輸出與print()函式
9.2.1 print()函式的功能
9.2.2 print()的三種使用形式
9.3 練一練:通用倒計時器
9.3.1 程式設計要求與具體程式
9.3.2 程式的兩種運行方式
9.4 歸納與總結
思考與實踐
第10章 學會選擇靠if語句
10.1 選擇問題與if語句
10.2 if語句的三種形式
10.2.1 if的第一種形式
10.2.2 if的第二種形式
10.2.3 if語句的第三種形式
10.3 多重if語句與if的嵌套
10.4 關於if語句的重要小結
10.4.1 關於if語句的小結
10.4.2 練一練——溫度轉換升級版1
思考與實踐
第11章 重複操作與循環語句
11.1 循環及其套用
11.2 while語句與for語句
11.2.1 while語句
11.2.2 for語句
11.4 練一練——攝氏與華氏溫度轉換
11.4.1 程式設計要求與具體程式
11.4.2 程式的詳細分析
11.5 歸納與總結
11.5.1 循環語句for與while的else擴展
11.5.2 語句break與 continue的區別
思考與實踐
第12章 函式讓程式的優雅
12.1 什麼是函式
12.1.1 函式的概念
12.1.2 為什麼要使用函式
12.2 函式的定義與調用
12.2.1 如何定義一個函式
12.2.2 如何調用函式
12.3 函式的參數傳遞與不定長參數
12.3.1 可變類型參數的傳遞與不可變類型參數的傳遞
12.3.2 必須參數、默認參數與關鍵字參數
12.3.3 不定長參數
12.4 匿名函式
12.5 變數的作用範圍
12.6 練一練——剪刀石頭布遊戲
12.6.1 程式的設計要求與算法設計
12.6.2 完整程式
12.7 歸納與總結
12.7.1 函式的意義
12.7.2 return 語句
12.7.3 關於默認參數
12.7.4 if __name__ =='__main__'的作用
思考與實踐
第13章 “分而治之”與程式的模組化
13.1 模組化及其意義
13.1.1 為什麼要模組化
13.1.2 什麼是模組
13.2 如何定義和使用模組
13.2.1 中模組——檔案模組的定義與套用
13.2.2 模組是如何被找到並引用的——模組搜尋路徑
13.3 大模組——包的定義與套用
13.3.1 什麼是“包”
13.3.2 如何定義包
13.3.3 包的使用
13.4 歸納和總結
思考與實踐
第14章 檔案與數據格式化
14.1 檔案及其操作
14.1.1 檔案的概述
14.1.2 打開檔案——open()函式
14.1.3 檔案打開舉例
14.1.4 讀檔案
14.1.5 寫檔案
14.1.6 檔案指針及其移動
14.1.7 關閉檔案
14.2 檔案的套用舉例——詞頻統計
14.2.1 英文文獻的詞頻統計
14.2.2 jieba模組與中文文獻的詞頻統計
14.3 CSV檔案與JSON檔案的操作
14.3.1 CSV格式檔案及其操作
14.3.2 JSON格式檔案及其操作
14.4 歸納與補充
14.4.1 關於檔案的幾點注意
14.4.2 檔案的疊代
思考與實踐
第15章 面向對象與類——讓程式更人性化
15.1 面向對象與類
15.1.1 面向過程的程式設計
15.1.2 面向對象的程式設計
15.1.3 類(Class)
15.2 類的定義
15.2.1 類的定義
15.2.2 靜態方法、類方法與類變數
15.2.3 私有屬性和私有方法
15.3 類的使用
15.3.1 不帶默認屬性的類及其使用
15.3.2 帶默認參數的類及其使用
15.3.3 類的組合使用
15.4 類的封裝性
15.4.1 什麼是封裝
15.4.2 如何封裝
15.5 類的繼承性
15.5.1 什麼是繼承
15.5.2 類的單繼承
15.5.3 構造函式的繼承
15.5.4 類的多繼承
15.5.5 類的多級繼承
15.5.6 類的混合繼承
15.6 類的多態性
15.6.1 什麼是多態性
15.6.2 多態性舉例
15.7 從模組中導入類
15.8 歸納與總結
15.8.1 類方法的屬性化
15.8.2 關於內置變數__mro__
15.8.3 issubclass()與isinstance()
15.8.4 dir()
思考與實踐
第16章 異常處理讓程式健壯
16.1 錯誤與異常
16.1.1 錯誤(Error)
16.1.2 異常(Exception)
16.1.3 常見的標準異常
16.1.4 自定義異常
16.1.5 為什麼要進行異常處理
16.2 異常處理的一般方法——try語句
16.2.1 try語句的一般語法
16.2.2 try語句的執行過程分析
16.3 異常處理的特殊方法——with語句
16.3.1 上下文管理
16.3.2 為什麼要使用with語句
16.3.3 with語句的一般形式
16.3.4 with語句的工作機理
16.3.5 自定義上下文管理器
16.3.6 以Socket通信舉例說明上下文管理器的定義
16.4 歸納與補充
16.4.1 關於try
16.4.2 關於異常的其他問題
16.4.3 關於Socket通信的再說明
思考與實踐
第三篇 實戰演習
第17章 桌面小遊戲——剪刀石頭布
17.1 圖形化人機界面GUI及其套用
17.2 基於GUI的剪刀石頭布遊戲的算法與類的設計
17.2.1 算法設計
17.2.2 類的設計
17.2.3 計算機出拳的實現
17.2.4 最高得分的保存與讀取
17.2.5 圖形化界面
17.2.6 按鍵與滑鼠的捕捉與處理
17.3 編輯程式
17.3.1 新建PyCharm工程
17.3.2 完整的源程式
17.3.3 程式運行效果
17.4 歸納與總結
17.4.1 設定解釋器時出現“Cannot Save Setting”錯誤及其解決
17.4.2 將代碼生成執行檔
思考與實踐
第18章 數據挖掘與分析——Bilibili視頻爬蟲
18.1 數據挖掘與網路爬蟲
18.1.1 數據挖掘
18.1.2 網路爬蟲
18.1.3 網路爬蟲的基本原理
18.1.4 實現網路爬蟲的關鍵技術
18.1.5 爬蟲的基本框架
18.2 Python網路爬蟲的開發平台與環境
18.3 爬蟲的案例——B站網路爬蟲
18.3.1 功能與設計要求
18.3.2 目標URL和套用接口的獲取
18.3.3 舉例:如何快速找到B站全站視頻信息的公共接口——api
18.3.4 算法與流程圖
18.3.5 多進程與多執行緒的選擇
18.3.6 完整程式代碼
18.4 歸納與總結
18.4.1 關於requests中get方法的幾點注意事項
18.4.2 爬蟲尺寸
18.4.3 反爬蟲技術
思考與實踐
第19章 圖像識別與機器學習——字元型驗證碼自動識別
19.1 機器視覺與機器學習
19.1.1 機器視覺
19.1.2 機器學習
19.1.3 機器學習與神經網路
19.2.1 Tensorflow及其介紹
19.2.2 TensorFlow的程式舉例
19.2.3 基於TensorFlow的卷積神經網路
19.3 字元型驗證碼的自動識別
19.3.1 字元型驗證碼
19.3.2 自動識別字元型驗證碼的兩種方法
19.4 字元型驗證碼自動識別程式的實現
19.4.1 字元型驗證碼自動識別程式的算法設計
19.4.2 字元型驗證碼自動識別程式架構
19.4.3 字元型驗證碼自動識別程式
19.4.4 程式運行結果及其分析
19.5 歸納與小結
19.5.1 關於CNN模型
19.5.2 關於TensorFlow的一些問題
19.5.3 關於深度學習框架的問題
思考與實踐
第20章 智慧型控制——基於串口控制的二極體花樣顯示
20.1 項目的設計目標
20.1.1 項目設計要求
20.1.2 串口及其設定
20.2 Pyboard開發板及其套用
20.2.1 Pyboard板
20.2.2 Pyboard板的安裝
20.2.3 Pyboard板的控制方式
20.2.4 Pyboard板與上位機的串口通信測試
20.3 發光二極體顯示板
20.4 項目的算法及其分析
20.4.1 上位機程式的算法
20.4.2 下位機程式的算法
20.5 項目的程式
20.5.1 上位機程式
20.5.2 下位機程式
20.6 實際運行效果及其分析
20.6.1 樣機及其運行演示
20.6.2 程式運行要點
20.6.3 Pyboard板的資源
20.6.4 歸納與小結
思考與實踐
第四篇 繼續前進
第21章 程式的調試、測試與assert斷言
21.1 程式的調試與測試
21.1.1 調試程式的方法
21.1.2 使用Python內置單步調試器(Pdb)調試程式
21.1.3 利用IDE集成開發環境調試程式
21.2 測試程式的方法
21.2.1 為什麼要對程式進行測試
21.2.2 通過unittest實現一般測試
21.2.3 使用TestSuite進行測試
21.3 歸納與小結
思考與實踐
第22章 Python程式的打包與發布
22.1 為什麼要將程式打包
22.2 如何將程式打包
22.2.1 打包成.pyc檔案
22.2.2 Python程式的運行過程
22.2.3 打包成.exe檔案
22.3 歸納與小結
思考與實踐
第23章 Python那些不得不說的事情
23.1 如何使程式更Pythonic
23.1.1 Python程式的基本原則
23.1.2 交換變數值(Swap Values)
23.1.3 合併字元串
23.1.4 使用關鍵字——in
23.1.5 Python的True值(Truth Values)
23.1.6 Enumerate——索引和元素(Index & Item)
23.1.7 Python方法中參數的默認值
23.2 疊代器(Iterator)
23.2.1 疊代器
23.2.2 列表生成式(List Comprehensions)
23.3 生成器(Generator)
23.3.1 生成器
23.3.2 yield及其使用
23.4 歸納與小結
思考與實踐,
第一篇 營造環境
第1章 Python及其安裝
1.1 我為什麼要學習Python
1.1.1 它的廣泛性
1.1.2 它的新穎性
1.1.3 它的生態性
1.1.4 Python的套用領域舉例
1.1.5 Python的局限性
1.2 學習Python的必備神器
1.2.1 Python的底細
1.2.2 PyCharm
1.3 安裝和設定Python
1.3.1 獲取Python
1.3.2 安裝Python
1.3.3 設定Python
思考與實踐
第2章 IDLE的使用
2.1 IDLE的安裝與設定
2.1.1 IDLE的安裝
2.1.2 IDLE的啟動
2.1.3 IDLE的個性化設定
2.2 Edit編輯模式與Shell命令行模式的切換
2.2.1 Edit編輯模式與Shell命令行模式的切換
2.2.2 IDLE的文本編輯功能
2.3 在IDLE中運行程式
2.3.1 在Edit模式下運行程式
2.3.2 在Shell模式下運行程式
2.4 IDLE的程式調試功能
2.4.1 兩種調試方法
2.4.2 在Shell模式下的程式調試
2.4.3 在Edit模式下的程式調試
2.4.4 如何斷點調試
2.5 在Shell模式下如何清屏
思考與實踐
第3章 安裝PyCharm
3.1 PyCharm及其安裝
3.1.1 PyCharm的三種版本形式
3.1.2 獲取PyCharm
3.1.3 安裝PyCharm
3.2 PyCharm的個性化設定
3.2.1 設定入口
3.2.2 外觀設定
3.2.3 Editor與自動代碼補齊設定
3.2.4 解釋器(Interpreter)設定
3.2.5 運行鍵設定
思考與實踐
第4章 Python的標準資源
4.1 Python 有哪些內置的標準模組
4.1.1 通過help()命令查看內置模組
4.1.2 通過IDLE的help選單查看內置模組
4.1.3 常用內置模組及其功能介紹
4.1.4 內置模組的主要函式(方法)簡介
4.2 內置模組的套用舉例
4.2.1 路徑相關的舉例
4.2.2 時間相關的舉例
4.3 Python有哪些內置函式
4.3.1 如何查看Python有哪些內置函式
4.3.2 內置函式及其功能
4.3.3 內置函式的套用舉例
思考與實踐
第5章 Python的外部資源
5.1 為什麼要安裝外部模組
5.2 如何安裝外部模組
5.2.1 升級更新安裝工具
5.2.2 使用pip安裝外部模組
5.2.3 使用easy_install安裝外部模組
5.3 安裝後的外部模組導入PyCharm
5.4 通過PyCharm安裝外部庫
5.4.1 通過Project Interpreter方式安裝外部庫
5.4.2 通過Plugins方式安裝外部庫
5.5 常用的外部模組及其套用
5.5.1 常用的外部模組
5.5.2 外部模組的套用舉例
思考與實踐
第二篇 掀起頭蓋
第6章 我的Python處女作
6.1 新建工程
6.1.1 新建工程
6.1.2 新建Python檔案
6.1.3 配置工程並運行
6.2 關於工程及其要注意的三個事項
6.2.1 關於首次運行程式的注意事項
6.2.2 關於工程的必要設定
6.2.3 關於運行與調試功能的設定問題
6.2.4 關於三種運行方式
思考與實踐
第7章 Python的數據類型
7.1 Python程式的基本組成
7.1.1 一個溫度轉換的例子
7.1.2 程式的注釋
7.1.3 語句
7.1.4 常量
7.1.5 變數
7.1.6 標識符
7.1.7 函式
7.2 Python的數據類型
7.2.1 Python的數據類型分類
7.2.2 Python 中變數的基本特性
7.3 Python的常量
7.3.1 數字
7.3.2 字元串
7.3.3 布爾值
7.3.4 空值
7.4 Python的基本類型變數
7.4.1 變數的使用
7.4.2 基本變數的賦值
7.4.3 變數的地址
7.5 Python的構造類型變數
7.5.1 String(字元串)
7.5.2 list(列表)
7.5.3 tuple(元組)
7.5.4 Set(集合)
7.5.5 Dictionary(字典)
7.6 歸納與總結
7.6.1 各種類型的相互轉化
7.6.2 字元串、列表、元組、字典和集合的異同點
思考與實踐
第8章 Python的數據運算
8.1 運算的分類
8.2 運算符的功能與特性
8.2.1 算術運算
8.2.2 比較運算
8.2.3 賦值運算
8.2.5 成員運算
8.2.6 身份運算
8.2.7 按位運算符
8.3 運算的優先權
8.3.1 優先權與結合性
8.3.2 優先權的使用舉例
思考與實踐
第9章 鍵盤輸入與螢幕輸出
9.1 鍵盤輸入與input()函式
9.1.1 input()函式
9.1.2 類型之間的轉換
9.2 螢幕輸出與print()函式
9.2.1 print()函式的功能
9.2.2 print()的三種使用形式
9.3 練一練:通用倒計時器
9.3.1 程式設計要求與具體程式
9.3.2 程式的兩種運行方式
9.4 歸納與總結
思考與實踐
第10章 學會選擇靠if語句
10.1 選擇問題與if語句
10.2 if語句的三種形式
10.2.1 if的第一種形式
10.2.2 if的第二種形式
10.2.3 if語句的第三種形式
10.3 多重if語句與if的嵌套
10.4 關於if語句的重要小結
10.4.1 關於if語句的小結
10.4.2 練一練——溫度轉換升級版1
思考與實踐
第11章 重複操作與循環語句
11.1 循環及其套用
11.2 while語句與for語句
11.2.1 while語句
11.2.2 for語句
11.4 練一練——攝氏與華氏溫度轉換
11.4.1 程式設計要求與具體程式
11.4.2 程式的詳細分析
11.5 歸納與總結
11.5.1 循環語句for與while的else擴展
11.5.2 語句break與 continue的區別
思考與實踐
第12章 函式讓程式的優雅
12.1 什麼是函式
12.1.1 函式的概念
12.1.2 為什麼要使用函式
12.2 函式的定義與調用
12.2.1 如何定義一個函式
12.2.2 如何調用函式
12.3 函式的參數傳遞與不定長參數
12.3.1 可變類型參數的傳遞與不可變類型參數的傳遞
12.3.2 必須參數、默認參數與關鍵字參數
12.3.3 不定長參數
12.4 匿名函式
12.5 變數的作用範圍
12.6 練一練——剪刀石頭布遊戲
12.6.1 程式的設計要求與算法設計
12.6.2 完整程式
12.7 歸納與總結
12.7.1 函式的意義
12.7.2 return 語句
12.7.3 關於默認參數
12.7.4 if __name__ =='__main__'的作用
思考與實踐
第13章 “分而治之”與程式的模組化
13.1 模組化及其意義
13.1.1 為什麼要模組化
13.1.2 什麼是模組
13.2 如何定義和使用模組
13.2.1 中模組——檔案模組的定義與套用
13.2.2 模組是如何被找到並引用的——模組搜尋路徑
13.3 大模組——包的定義與套用
13.3.1 什麼是“包”
13.3.2 如何定義包
13.3.3 包的使用
13.4 歸納和總結
思考與實踐
第14章 檔案與數據格式化
14.1 檔案及其操作
14.1.1 檔案的概述
14.1.2 打開檔案——open()函式
14.1.3 檔案打開舉例
14.1.4 讀檔案
14.1.5 寫檔案
14.1.6 檔案指針及其移動
14.1.7 關閉檔案
14.2 檔案的套用舉例——詞頻統計
14.2.1 英文文獻的詞頻統計
14.2.2 jieba模組與中文文獻的詞頻統計
14.3 CSV檔案與JSON檔案的操作
14.3.1 CSV格式檔案及其操作
14.3.2 JSON格式檔案及其操作
14.4 歸納與補充
14.4.1 關於檔案的幾點注意
14.4.2 檔案的疊代
思考與實踐
第15章 面向對象與類——讓程式更人性化
15.1 面向對象與類
15.1.1 面向過程的程式設計
15.1.2 面向對象的程式設計
15.1.3 類(Class)
15.2 類的定義
15.2.1 類的定義
15.2.2 靜態方法、類方法與類變數
15.2.3 私有屬性和私有方法
15.3 類的使用
15.3.1 不帶默認屬性的類及其使用
15.3.2 帶默認參數的類及其使用
15.3.3 類的組合使用
15.4 類的封裝性
15.4.1 什麼是封裝
15.4.2 如何封裝
15.5 類的繼承性
15.5.1 什麼是繼承
15.5.2 類的單繼承
15.5.3 構造函式的繼承
15.5.4 類的多繼承
15.5.5 類的多級繼承
15.5.6 類的混合繼承
15.6 類的多態性
15.6.1 什麼是多態性
15.6.2 多態性舉例
15.7 從模組中導入類
15.8 歸納與總結
15.8.1 類方法的屬性化
15.8.2 關於內置變數__mro__
15.8.3 issubclass()與isinstance()
15.8.4 dir()
思考與實踐
第16章 異常處理讓程式健壯
16.1 錯誤與異常
16.1.1 錯誤(Error)
16.1.2 異常(Exception)
16.1.3 常見的標準異常
16.1.4 自定義異常
16.1.5 為什麼要進行異常處理
16.2 異常處理的一般方法——try語句
16.2.1 try語句的一般語法
16.2.2 try語句的執行過程分析
16.3 異常處理的特殊方法——with語句
16.3.1 上下文管理
16.3.2 為什麼要使用with語句
16.3.3 with語句的一般形式
16.3.4 with語句的工作機理
16.3.5 自定義上下文管理器
16.3.6 以Socket通信舉例說明上下文管理器的定義
16.4 歸納與補充
16.4.1 關於try
16.4.2 關於異常的其他問題
16.4.3 關於Socket通信的再說明
思考與實踐
第三篇 實戰演習
第17章 桌面小遊戲——剪刀石頭布
17.1 圖形化人機界面GUI及其套用
17.2 基於GUI的剪刀石頭布遊戲的算法與類的設計
17.2.1 算法設計
17.2.2 類的設計
17.2.3 計算機出拳的實現
17.2.4 最高得分的保存與讀取
17.2.5 圖形化界面
17.2.6 按鍵與滑鼠的捕捉與處理
17.3 編輯程式
17.3.1 新建PyCharm工程
17.3.2 完整的源程式
17.3.3 程式運行效果
17.4 歸納與總結
17.4.1 設定解釋器時出現“Cannot Save Setting”錯誤及其解決
17.4.2 將代碼生成執行檔
思考與實踐
第18章 數據挖掘與分析——Bilibili視頻爬蟲
18.1 數據挖掘與網路爬蟲
18.1.1 數據挖掘
18.1.2 網路爬蟲
18.1.3 網路爬蟲的基本原理
18.1.4 實現網路爬蟲的關鍵技術
18.1.5 爬蟲的基本框架
18.2 Python網路爬蟲的開發平台與環境
18.3 爬蟲的案例——B站網路爬蟲
18.3.1 功能與設計要求
18.3.2 目標URL和套用接口的獲取
18.3.3 舉例:如何快速找到B站全站視頻信息的公共接口——api
18.3.4 算法與流程圖
18.3.5 多進程與多執行緒的選擇
18.3.6 完整程式代碼
18.4 歸納與總結
18.4.1 關於requests中get方法的幾點注意事項
18.4.2 爬蟲尺寸
18.4.3 反爬蟲技術
思考與實踐
第19章 圖像識別與機器學習——字元型驗證碼自動識別
19.1 機器視覺與機器學習
19.1.1 機器視覺
19.1.2 機器學習
19.1.3 機器學習與神經網路
19.2 Tensorflow及其卷積神經網路
19.2.1 Tensorflow及其介紹
19.2.2 TensorFlow的程式舉例
19.2.3 基於TensorFlow的卷積神經網路
19.3 字元型驗證碼的自動識別
19.3.1 字元型驗證碼
19.3.2 自動識別字元型驗證碼的兩種方法
19.4 字元型驗證碼自動識別程式的實現
19.4.1 字元型驗證碼自動識別程式的算法設計
19.4.2 字元型驗證碼自動識別程式架構
19.4.3 字元型驗證碼自動識別程式
19.4.4 程式運行結果及其分析
19.5 歸納與小結
19.5.1 關於CNN模型
19.5.2 關於TensorFlow的一些問題
19.5.3 關於深度學習框架的問題
思考與實踐
第20章 智慧型控制——基於串口控制的二極體花樣顯示
20.1 項目的設計目標
20.1.1 項目設計要求
20.1.2 串口及其設定
20.2 Pyboard開發板及其套用
20.2.1 Pyboard板
20.2.2 Pyboard板的安裝
20.2.3 Pyboard板的控制方式
20.2.4 Pyboard板與上位機的串口通信測試
20.3 發光二極體顯示板
20.4 項目的算法及其分析
20.4.1 上位機程式的算法
20.4.2 下位機程式的算法
20.5 項目的程式
20.5.1 上位機程式
20.5.2 下位機程式
20.6 實際運行效果及其分析
20.6.1 樣機及其運行演示
20.6.2 程式運行要點
20.6.3 Pyboard板的資源
20.6.4 歸納與小結
思考與實踐
第四篇 繼續前進
第21章 程式的調試、測試與assert斷言
21.1 程式的調試與測試
21.1.1 調試程式的方法
21.1.2 使用Python內置單步調試器(Pdb)調試程式
21.1.3 利用IDE集成開發環境調試程式
21.2 測試程式的方法
21.2.1 為什麼要對程式進行測試
21.2.2 通過unittest實現一般測試
21.2.3 使用TestSuite進行測試
21.3 歸納與小結
思考與實踐
第22章 Python程式的打包與發布
22.1 為什麼要將程式打包
22.2 如何將程式打包
22.2.1 打包成.pyc檔案
22.2.2 Python程式的運行過程
22.2.3 打包成.exe檔案
22.3 歸納與小結
思考與實踐
第23章 Python那些不得不說的事情
23.1 如何使程式更Pythonic
23.1.1 Python程式的基本原則
23.1.2 交換變數值(Swap Values)
23.1.3 合併字元串
23.1.4 使用關鍵字——in
23.1.5 Python的True值(Truth Values)
23.1.6 Enumerate——索引和元素(Index & Item)
23.1.7 Python方法中參數的默認值
23.2 疊代器(Iterator)
23.2.1 疊代器
23.2.2 列表生成式(List Comprehensions)
23.3 生成器(Generator)
23.3.1 生成器
23.3.2 yield及其使用
23.4 歸納與小結
思考與實踐