內容簡介
本書是一部系統論述Python程式語言、OOP編程思想以及函式式編程思想的立體化教程(含紙質圖書、電子書、教學課件、原始碼與視頻教程)。全書共分為四篇:第一篇Python基礎(第1章~第8章),第二篇Python進階(第9章~第15章),第三篇Python實用庫(第16章~第20章),第四篇Python項目實戰(第21章~第24章)。主要內容包括:開篇綜述;開發環境搭建;第一個Python程式;Python語法基礎;Python編碼規範;數據類型;運算符;控制語句;數據結構;函式式編程;面向對象編程;異常處理;常用模組;正則表達式;檔案操作與管理;數據交換格式;資料庫編程;網路編程;wxPython圖形用戶界面編程;Python多執行緒編程;
項目實戰1:網路爬蟲與抓取股票數據;
項目實戰2:數據可視化與股票數據分析;
項目實戰3:開發PetStore寵物商店項目;
項目實戰4:開發Python版QQ2006聊天工具。
為便於讀者高效學習,快速掌握Python編程方法。本書作者精心製作了電子書、完整的教學課件、完整的原始碼與豐富的配套視頻教程以及線上答疑服務等內容。
目錄
第1章 開篇綜述
1.1 Python語言歷史
1.2 Python語言設計哲學——Python之禪
1.3 Python語言特點
1.4 Python語言套用前景
1.5 如何獲得幫助
第2章 開發環境搭建
2.1 搭建Python環境
2.2 PyCharm開發工具
2.2.1 下載和安裝
2.2.2 設定Python編譯器
2.3 Eclipse+PyDev開發工具
2.3.1 Eclipse下載和安裝
2.3.2 安裝PyDev外掛程式
2.3.3 設定Python編譯器
2.3.4 設定UTF-8編碼
2.4 Visual Studio Code開發工具
2.5 文本編輯工具
第3章 第一個Python程式
3.1 使用REPL
3.2 使用PyCharm實現
3.2.1 創建項目
3.2.2 創建Python代碼檔案
3.2.3 編寫代碼
3.2.4 運行程式
3.3 使用Eclipse+PyDev外掛程式實現
3.3.1 創建項目
3.3.2 創建Python代碼檔案
3.3.3 運行程式
3.4 使用Visual Studio Code實現
3.4.1 創建Python代碼檔案
3.4.2 運行程式
3.5 文本編輯工具+Python編譯器實現
3.5.1 編寫代碼
3.5.2 運行程式
3.6 代碼解釋
第4章 Python語法基礎
4.1 標識符和關鍵字
4.1.1 標識符
4.1.2 關鍵字
4.2 常量和變數
4.2.1 變數
4.2.2 常量
4.3 注釋
4.4 語句
4.5 模組
4.6 包
4.6.1 創建包
4.6.2 包導入
第5章 Python編碼規範
5.1 命名規範
5.2 注釋規範
5.2.1 檔案注釋
5.2.2 文檔注釋
5.2.3 代碼注釋
5.2.4 使用TODO注釋
5.3 導入規範
5.4 代碼排版
5.4.1 空行
5.4.2 空格
5.4.3 縮進
5.4.4 斷行
第6章 數據類型
6.1 數字類型
6.1.1 整數類型
6.1.2 浮點類型
6.1.3 複數類型
6.1.4 布爾類型
6.2 數字類型相互轉換
6.2.1 隱式類型轉換
6.2.2 顯式類型轉換
6.3 字元串類型
6.3.1 字元串表示方式
6.3.2 字元串格式化
6.3.3 字元串查找
6.3.4 字元串與數字相互轉換
第7章 運算符
7.1 算術運算符
7.1.1 一元運算符
7.1.2 二元運算符
7.2 關係運算符
7.3 邏輯運算符
7.4 位運算符
7.5 賦值運算符
7.6 其他運算符
7.6.1 同一性測試運算符
7.6.2 成員測試運算符
7.7 運算符優先權
第8章 控制語句
8.1 分支語句
8.1.1 if結構
8.1.2 if-else結構
8.1.3 elif結構
8.1.4 三元運算符替代品——條件表達式
8.2 循環語句
8.2.1 while語句
8.2.2 for語句
8.3 跳轉語句
8.3.1 break語句
8.3.2 continue語句
8.3.3 while和for中的else語句
8.4 使用範圍
第9章 數據結構
9.1 元組
9.1.1 序列
9.1.2 創建元組
9.1.3 訪問元組
9.1.4 遍曆元組
9.2 列表
9.2.1 列表創建
9.2.2 追加元素
9.2.3 插入元素
9.2.4 替換元素
9.2.5 刪除元素
9.2.6 其他常用方法
9.2.7 列表推導式
9.3 集合
9.3.1 創建可變集合
9.3.2 修改可變集合
9.3.3 遍歷集合
9.3.4 不可變集合
9.3.5 集合推導式
9.4 字典
9.4.1 創建字典
9.4.2 修改字典
9.4.3 訪問字典
9.4.4 遍歷字典
9.4.5 字典推導式
第10章 函式式編程
10.1 定義函式
10.2 函式參數
10.2.1 使用關鍵字參數調用函式
10.2.2 參數默認值
10.2.3 可變參數
10.3 函式返回值
10.3.1 無返回值函式
10.3.2 多返回值函式
10.4 函式變數作用域
10.5 生成器函式
10.6 嵌套函式
10.7 函式式編程基礎
10.7.1 函式類型
10.7.2 Lambda表達式
10.7.3 三大基礎函式
第11章 面向對象編程
11.1 面向對象概述
11.2 面向對象三個基本特性
11.2.1 封裝性
11.2.2 繼承性
11.2.3 多態性
11.3 類和對象
11.3.1 定義類
11.3.2 創建和使用對象
11.3.3 實例變數
11.3.4 類變數
11.3.5 構造方法
11.3.6 實例方法
11.3.7 類方法
11.3.8 靜態方法
11.4 封裝性
11.4.1 私有變數
11.4.2 私有方法
11.4.3 定義屬性
11.5 繼承性
11.5.1 繼承概念
11.5.2 重寫方法
11.5.3 多繼承
11.6 多態性
11.6.1 多態概念
11.6.2 類型檢查
11.6.3 鴨子類型
11.7 Python根類——object
11.7.1 __str__()方法
11.7.2 對象比較方法
11.8 枚舉類
11.8.1 定義枚舉類
11.8.2 限制枚舉類
11.8.3 使用枚舉類
第12章 異常處理
12.1 從一個問題開始
12.2 異常類繼承層次
12.3 常見異常
12.3.1 AttributeError異常
12.3.2 OSError異常
12.3.3 IndexError異常
12.3.4 KeyError異常
12.3.5 NameError異常
12.3.6 TypeError異常
12.3.7 ValueError異常
12.4 捕獲異常
12.4.1 try-except語句
12.4.2 多except代碼塊
12.4.3 try-except語句嵌套
12.4.4 多重異常捕獲
12.5 異常堆疊跟蹤
12.6 釋放資源
12.6.1 finally代碼塊
12.6.2 else代碼塊
12.6.3 with as代碼塊自動資源管理
12.7 自定義異常類
12.8 顯式拋出異常
第13章 常用模組
13.1 math模組
13.1.1 捨入函式
13.1.2 冪和對數函式
13.1.3 三角函式
13.2 random模組
13.3 datetime模組
13.3.1 datetime、date和time類
13.3.2 日期時間計算
13.3.3 日期時間格式化和解析
13.3.4 時區
13.4 logging日誌模組
13.4.1 日誌級別
13.4.2 日誌信息格式化
13.4.3 日誌重定位
13.4.4 使用配置檔案
第14章 正則表達式
14.1 正則表達式中字元
14.1.1 元字元
14.1.2 字元轉義
14.1.3 開始與結束字元
14.2 字元類
14.2.1 定義字元類
14.2.2 字元類取反
14.2.3 區間
14.2.4 預定義字元類
14.3 量詞
14.3.1 使用量詞
14.3.2 貪婪量詞和懶惰量詞
14.4 分組
14.4.1 使用分組
14.4.2 命名分組
14.4.3 反向引用分組
14.4.4 非捕獲分組
14.5 re模組
14.5.1 search()和match()函式
14.5.2 findall()和finditer()函式
14.5.3 字元串分割
14.5.4 字元串替換
14.6 編譯正則表達式
14.6.1 已編譯正則表達式對象
14.6.2 編譯標誌
第15章 檔案操作與管理
15.1 檔案操作
15.1.1 檔案打開
15.1.2 檔案關閉
15.1.3 文本檔案讀寫
15.1.4 二進制檔案讀寫
15.2 使用os模組
15.3 使用os.path模組
第16章 數據交換格式
16.1 CSV數據交換格式
16.1.1 使用reader()函式
16.1.2 使用writer()函式
16.2 XML數據交換格式
16.2.1 XML文檔結構
16.2.2 解析XML文檔
16.2.3 使用XPath
16.3 JSON數據交換格式
16.3.1 JSON文檔結構
16.3.2 JSON數據編碼
16.3.3 JSON數據解碼
16.4 使用配置檔案
16.4.1 配置檔案結構
16.4.2 讀取配置檔案
16.4.3 寫入配置檔案
第17章 資料庫編程
17.1 數據持久技術概述
17.2 MySQL資料庫管理系統
17.2.1 資料庫安裝與配置
17.2.2 連線MySQL伺服器
17.2.3 常見的管理命令
17.3 Python DB-API
17.3.1 建立數據連線
17.3.2 創建游標
17.4 案例:MySQL資料庫CRUD操作
17.4.1 安裝PyMySQL模組
17.4.2 資料庫編程一般過程
17.4.3 數據查詢操作
17.4.4 數據修改操作
17.5 NoSQL數據存儲
17.5.1 dbm資料庫的打開和關閉
17.5.2 dbm數據存儲
第18章 網路編程
18.1 網路基礎
18.1.1 網路結構
18.1.2 TCP/IP協定
18.1.3 IP位址
18.1.4 連線埠
18.2 TCP Socket低層次網路編程
18.2.1 TCP Socket通信概述
18.2.2 TCP Socket通信過程
18.2.3 TCP Socket編程API
18.2.4 案例:簡單聊天工具
18.2.5 案例:檔案上傳工具
18.3 UDP Socket低層次網路編程
18.3.1 UDP Socket編程API
18.3.2 案例:簡單聊天工具
18.3.3 案例:檔案上傳工具
18.4 訪問網際網路資源
18.4.1 URL概念
18.4.2 HTTP/HTTPS協定
18.4.3 使用urllib庫
18.4.4 傳送GET請求
18.4.5 傳送POST請求
18.4.6 實例:Downloader
第19章 wxPython圖形用戶界面編程
19.1 Python圖形用戶界面開發工具包
19.2 wxPython安裝
19.3 wxPython基礎
19.3.1 wxPython類層次結構
19.3.2 第一個wxPython程式
19.3.3 wxPython界面構建層次結構
19.4 事件處理
19.4.1 一對一事件處理
19.4.2 一對多事件處理
19.4.3 示例:滑鼠事件處理
19.5 布局管理
19.5.1 Box布局器
19.5.2 StaticBox布局
19.5.3 Grid布局
19.5.4 FlexGrid布局
19.6 wxPython控制項
19.6.1 靜態文本和按鈕
19.6.2 文本輸入控制項
19.6.3 複選框和單選按鈕
19.6.4 下拉列表
19.6.5 列表
19.6.6 靜態圖片控制項
19.7 高級視窗
19.7.1 分隔視窗
19.7.2 使用樹
19.7.3 使用格線
19.8 使用選單
19.9 使用工具列
第20章 Python多執行緒編程
20.1 基礎知識
20.1.1 進程
20.1.2 執行緒
20.2 使用threading模組
20.3 創建執行緒
20.3.1 自定義函式作為執行緒體
20.3.2 繼承Thread執行緒類
20.4 執行緒管理
20.4.1 等待執行緒結束
20.4.2 執行緒停止
20.5 執行緒安全
20.5.1 臨界資源問題
20.5.2 多執行緒同步
20.6 執行緒間通信
20.6.1 使用Condition實現執行緒間通信
20.6.2 使用Event實現執行緒間通信
第21章 項目實戰1:網路爬蟲與抓取股票數據
21.1 網路爬蟲技術概述
21.1.1 網路通信技術
21.1.2 多執行緒技術
21.1.3 數據交換技術
21.1.4 Web前端技術
21.1.5 數據分析技術
21.1.6 數據存儲技術
21.2 爬取數據
21.2.1 網頁中靜態和動態數據
21.2.2 使用urllib爬取數據
21.2.3 使用Selenium爬取數據
21.3 分析數據
21.3.1 使用正則表達式
21.3.2 使用BeautifulSoup庫
21.4 項目實戰:抓取納斯達克股票數據
21.4.1 抓取數據
21.4.2 檢測數據是否更新
21.4.3 分析數據
21.4.4 保存數據到資料庫
21.4.5 爬蟲工作計畫任務
第22章 項目實戰2:數據可視化與股票數據分析
22.1 使用Matplotlib繪製圖表
22.1.1 安裝Matplotlib
22.1.2 圖表基本構成要素
22.1.3 繪製折線圖
22.1.4 繪製柱狀圖
22.1.5 繪製餅狀圖
22.1.6 繪製散點圖
22.1.7 繪製子圖表
22.2 項目實戰:納斯達克股票數據分析
22.2.1 從資料庫提取數據
22.2.2 繪製成交量折線圖
22.2.3 繪製OHLC柱狀圖
22.2.4 繪製K線圖
第23章 項目實戰3:開發PetStore寵物商店項目
23.1 系統分析與設計
23.1.1 項目概述
23.1.2 需求分析
23.1.3 原型設計
23.1.4 資料庫設計
23.1.5 架構設計
23.1.6 系統設計
23.2 任務1:創建資料庫
23.2.1 疊代1.1:安裝和配置MySQL資料庫
23.2.2 疊代1.2:編寫資料庫DDL腳本
23.2.3 疊代1.3:插入初始數據到資料庫
23.3 任務2:初始化項目
23.3.1 疊代2.1:添加資源圖片
23.3.2 疊代2.2:添加包
23.4 任務3:編寫數據持久層代碼
23.4.1 疊代3.1:資料庫配置檔案
23.4.2 疊代3.2:編寫DAO基類
23.4.3 疊代3.3:用戶管理DAO
23.4.4 疊代3.4:商品管理DAO
23.4.5 疊代3.5:訂單管理DAO
23.4.6 疊代3.6:訂單明細管理DAO
23.5 任務4:編寫表示層代碼
23.5.1 疊代4.1:編寫啟動模組
23.5.2 疊代4.2:編寫自定義視窗類——MyFrame
23.5.3 疊代4.3:用戶登錄視窗
23.5.4 疊代4.4:商品列表視窗
23.5.5 疊代4.5:商品購物車視窗
23.6 任務5:發布執行檔
23.6.1 疊代5.1:處理TODO任務
23.6.2 疊代5.2:發布為執行檔
第24章 項目實戰4:開發Python版QQ2006聊天工具
24.1 系統分析與設計
24.1.1 項目概述
24.1.2 需求分析
24.1.3 原型設計
24.1.4 資料庫設計
24.1.5 網路拓撲圖
24.1.6 系統設計
24.2 任務1:創建伺服器端資料庫
24.2.1 疊代1.1:安裝和配置MySQL資料庫
24.2.2 疊代1.2:編寫資料庫DDL腳本
24.2.3 疊代1.3:插入初始數據到資料庫
24.3 任務2:初始化項目
24.3.1 疊代2.1:添加資源圖片
24.3.2 疊代2.2:添加包
24.4 任務3:編寫伺服器端數據持久層
24.4.1 疊代3.1:編寫base_dao模組
24.4.2 任務3.2:編寫用戶管理DAO類
24.5 任務4:客戶端UI實現
24.5.1 疊代4.1:編寫my_frame模組
24.5.2 疊代4.2:登錄視窗實現
24.5.3 疊代4.3:好友列表視窗實現
24.5.4 疊代4.4:聊天視窗實現
24.6 任務5:用戶登錄過程實現
24.6.1 疊代5.1:客戶端啟動
24.6.2 疊代5.2:客戶端登錄編程
24.6.3 疊代5.3:伺服器端啟動
24.6.4 疊代5.4:伺服器端驗證編程
24.7 任務6:刷新好友列表
24.7.1 疊代6.1:刷新好友列表伺服器端編程
24.7.2 疊代6.2:刷新好友列表客戶端編程
24.8 任務7:聊天過程實現
24.8.1 疊代7.1:客戶端用戶1向用戶3傳送訊息
24.8.2 疊代7.2:伺服器端接收用戶1訊息與轉發給用戶3訊息
24.8.3 疊代7.3:客戶端用戶3接收用戶1訊息
24.9 任務8:用戶下線
24.9.1 疊代8.1:客戶端編程
24.9.2 疊代8.2:伺服器端編程