●上篇 Python語法與實踐
章 Python介紹
1.1 程序與編程語言
1.1.1 計算機是什麼
1.1.2 計算機編程
1.1.3 編譯器、解釋器和Python語言
1.1.4 Python程序開發步驟
1.2 Python語言的主要特征
1.3 Python開發環境及安裝方式
1.3.1 安裝Python
1.3.2 Python開發環境
1.4 Python解釋器
1.4.1 交互式解釋執行模式
1.4.2 函數
1.4.3 運行腳本文件模式
1.4.4 語句和注釋
1.5 數和字符的表示
1.5.1 數的表示
1.5.2 字符的表示
1.6 如何獲得幫助
1.7 習題
第2章 Python基本計算
2.1 值、類型、對像
2.1.1 值和類型
2.1.2 對像
2.2 變量
2.2.1 什麼是變量
2.2.2 變量名和關鍵字
2.2.3 動態類型語言
2.3 數據類型概述
2.3.1 數值類型
2.3.2 列表
2.3組
2.3.4 字符串
2.3.5 集合
2.3.6 字典
2.4 類型轉換和輸入
2.4.1 隱式類型轉換
2.4.2 顯式類型轉換
2.4.3 輸入
2.5 運算符和表達式
2.5.1 運算符和表達式的應用方法
2.5.2 運算符的種類
2.5.3 運算符的優先級
2.6 可變對像和不可變對像
2.7 控制語句
2.7.1 if條件語句
2.7.2 循環語句
2.7.3 pass語句
2.8 實戰
2.8.1 二分查找
2.8.2 冒泡排序和簡單選擇排序
2.8.3 Floyd最短路徑算法
2.9 習題
第3章 函數
3.1 定義函數、調用函數、參數傳遞
3.1.1 定義函數和調用函數
3.1.2 參數傳遞
3.1.3 return語句
3.1.4 文檔字符串
3.2 全局變量和局部變量
3.2.1 全局變量
3.2.2 局部變量
3.3 函數的參數
3.3.1 默認形參
3.3.2 位置實參和關鍵字實參
3.3.3 任意形參(可變形參)
3.3.4 字典形參
3.3.5 解封參數列表
3.4 遞歸函數(調用自身的函數)
3.4.1 遞歸函數的使用方法
3.4.2 實戰:二分查找的遞歸實現
3.4.3 實戰:漢諾塔問題
3.4.4 實戰:快速排序算法
3.4.5 實戰:迷宮問題
3.5 函數對像和lambda表達式
3.5.1 函數對像
3.5.2 lambda表達式
3.6 模塊和包
3.6.1 模塊
3.6.2 sys模塊(Python解釋器接口)
3.6.3 偽隨機數發生器模塊
3.6.4 包
3.6.5 Matplotlib包
3.7 實戰:Pong遊戲
3.7.1 Pygame遊戲庫介紹
3.7.2 用Pygame編寫遊戲
3.7.3 Pong遊戲
3.8 實戰:線性回歸
3.8.1 機器學習
3.8.2 假設函數、回歸和分類
3.8.3 線性回歸
3.8.4 多變量函數的最小值、正規方程
3.8.5 梯度下降法
3.8.6 梯度下降法求解線性回歸問題:模擬數據
3.8.7 批梯度下降法
3.8.8 房屋價格預測
3.8.9 樣本特征的規範化
3.8.10 利用預測模型預測房屋價格
3.9 習題
第4章 內置數據類型
4.1 數值
4.1.1 int、float、complex、bool
4.1.2 類型轉換
4.1.3 浮點數的精度問題
4.1.4 數值計算的函數
4.1.5 數學模塊
4.2 列表
4.2.1 列表的定義
4.2.2 訪問li素(索引和切片)
4.2.3 包含和遍歷
4.2.4 list的算術運算
4.2.5 Python的內置函數對list進行操作
4.2.6 list的方法
4.2.7 列表解析式
4.2.8 list包含的不是對像本身而是對像的引用
4.3 字符串
4.3.1 定義字符串
4.3.2 轉義字符
4.3.3 索引
4.3.4 切片
4.3.5 字符串不可修改
4.3.6 包含和遍歷
4.3.7 內置函數對字符串操作
4.3.8 字符串的方法
4組
4.4.1 創建tuple對像
4.4.2 索引和切片
4.4.3 tuple是不可變的
4.4.4 用內置函數對tuple操作
4.4.5 tuple的方法
4.5 集合
4.5.1 創建set對像
4.5.2 遍歷set
4.5.3 用內置函數對set操作
4.5.4 set的方法
4.5.5 set的運算符操作
4.5.6 set的集合運算(並、交、對稱差)
4.6 字典
4.6.1 創建字典對像
4.6.2 獲取鍵的值
4.6.3 通過下標插入或更新一個鍵值
4.6.4 插入或更新多個鍵值:update()方法
4.6.5 刪除鍵值
4.6.6 獲取所有鍵、所有值、所有鍵值
4.6.7 遍歷所有鍵、所有值、所有鍵值
4.6.8 用內置函數訪問dict對像
4.6.9 從兩個可迭代對像創建一個dict
4.6.10 用in檢測dict對像是否包含某個鍵
4.7 用強化學習Q-Learning算法求解最佳路徑
4.7.1 強化學習
4.7.2 Q-Learning算法
4.7.3 Q-Learning算法的Python實現
4.8 習題
第5章 面向對像編程
5.1 什麼是面向對像編程
5.1.1 過程式編程和面向對像編程
5.1.2 Python既支持面向對像編程,也支持過程式編程
5.1.3 打印員工信息
5.2 類和對像
5.2.1 定義類
5.2.2 實例屬性和構造函數
5.2.3 實例方法
5.2.4 類屬性
5.2.5 del
5.2.6 訪問控制和私有屬性
5.2.7 運算符重載
5.3 派生類
5.3.1 派生類
5.3.2 覆蓋
5.3.3 多繼承
5.3.4 屬性解析
5.4 綁定屬性
5.4.1 動態綁定:給類和對像任意綁定屬性
5.4.2 對像的__dict__屬性
5.4.3 __slots__
5.5 實戰:二叉搜索樹
5.5.1 樹、二叉樹、二叉搜索樹
5.5.2 樹和二叉樹的存儲表示
5.5.3 二叉樹的操作
5.5.4 二叉搜索樹的操作
5.6 實戰:面向對像遊戲引擎和仿“雷電戰機”遊戲
5.6.1 面向對像遊戲引擎
5.6.2 Pong遊戲
5.6.3 仿“雷電戰機”遊戲
5.7 習題
第6章 輸入/輸出
6.1 標準輸入/輸出
6.1.1 標準輸出函數print()
6.1.2 格式化輸出
6.1.3 美觀輸出函數pprint()
6.1.4 標準輸入(內置函數input())
6.2 文件讀/寫
6.2.1 內置函數open()
6.2.2 文件對像的方法
6.2.3 二進制文件讀/寫
6.2.4 tell()方法和seek()方法
6.3 習題
第7章 錯誤和異常
7.1 錯誤
7.1.1 語法錯誤
7.1.2 運行時錯誤:異常
7.1.3 邏輯錯誤
7.2 異常處理
7.2.1 捕捉異常的基本形式
7.2.2 捕獲特定類型的異常
7.2.3 捕獲未知的內置異常
7.2.4 else子句
7.2.5 finally子句
7.2.6 用raise拋出異常
7.2.7 自定義異常類
7.2.8 預定義清理行為
7.3 調試程序
7.3.1 輸出(打印)
7.3.2 斷言
7.3.3 日志
7.3.4 調試工具
7.4 習題
第8章 不錯語法特性
8.1 容器、可迭代對像、迭代器、生成器
8.1.1 容器
8.1.2 可迭代的和迭代器
8.1.3 生成器
8.1.4 例子:讀取多個文件
8.1.5 標準庫的迭代器工具
8.2 閉包
8.2.1 作用域
8.2.2 嵌套函數
8.2.3 什麼是閉包
8.2.4 用閉包代替類
8.2.5 函數的閉包屬性__closure__
8.3 裝飾器
8.4 @property
8.5 類的靜態方法和類方法
8.5.1 靜態方法
8.5.2 類方法
8.6 淺拷貝、深拷貝
8.6.1 淺拷貝
8.6.2 深拷貝
8.7 習題
下篇 Python標準庫
第9章 標準庫的常用模塊
9.1 操作繫統接口模塊
9.1.1 os模塊
9.1.2 高層文件操作
9.1.3 glob模塊
9.2 時間和日期模塊
9.2.1 時間模塊
9.2.2 日期模塊
9.3 習題
0章 正則表達式
10.1 正則表達式的定義
10.2 re模塊
10.2.1 re模塊的常用函數
10.2.2 編譯模式串
10.2.3 從頭匹配
10.2.4 多個匹配
10.2.5 按匹配切分
10.2.6 替換匹配
10.3 正則表達式中的語法規則
10.3.1 字符集
10.3.2 反斜杠
10.3.3 量詞(重復)
10.3.4 邊界字符(錨點)
10.3.5 或運算
10.3.6 分組
10.4 match和flags
10.4.1 match對像及其應用
10.4.2 標志參數
10.5 習題
1章 並發計算
11.1 多線程
11.1.1 Thread類
11.1.2 線程同步
11.2 多進程
11.2.1 創建進程
11.2.2 從Process類派生自己的進程類
11.2.3 為進程命名
2章 圖形用戶接口(GUI)編程
12.1 Tkinter基礎
12.1.1 事件驅動編程
12.1.2 個GUI程序
12.1.3 Tkinter部件
12.1.4 布局——幾何管理
12.1.5 屬性
12.1.6 自定義事件處理函數
12.1.7 定制事件處理函數
12.1.8 文本輸入框
12.1.9 獲取焦點
12.1.10 聊天對話框
12.1.11 框架
12.2 用類封裝GUI
12.2.1 菜單
12.2.2 工具條
12.2.3 畫圖
12.2.4 用鼠標畫圖
3章 網絡套接字編程
13.1 套接字編程概述
13.1.1 創建一個socket對像
13.1.2 服務器:綁定地址
13.1.3 面向連接的監聽
13.1.4 發送和接收數據
13.2 TCP服務器程序和客戶程序
13.2.1 最簡單的TCP服務器程序和客戶程序
13.2.2 TCP服務器程序和客戶程序(多連接)
13.2.3 TCP服務器程序和客戶程序(數據分塊)
13.2.4 TCP服務器程序(多進程)
13.2.5 TCP服務器程序(多線程)
13.3 UDP服務器程序和客戶程序
13.3.1 UDP服務器程序
13.3.2 UDP客戶程序
13.4 socketserver
13.4.1 socketserver模塊
13.4.2 socketserver.TCPServer
13.4.3 socketserver.UDPServer
4章 Internet應用編程
14.1 urllib模塊
14.1.1 Get請求
14.1.2 Post請求
14.1.3 Request對像
14.1.4 代理服務器
14.1.5 登錄驗證
14.1.6 網絡爬蟲
14.2 email
14.2.1 smtplib模塊
14.2.2 收取和處理郵件
5章 數據持久化
15.1 pickle模塊
15.2 shelve模塊
15.3 dbm模塊
15.4 json模塊
15.4.1 簡單數據類型的編碼和解碼
15.4.2 自定義類型的編碼和解碼
15.4.3 編碼類和解碼類
15.4.4 流或文件
15.5 sqlite3模塊
15.5.1 數據庫基本操作
15.5.2 在查詢中使用變量
15.5.3 事務
參考文獻
內容簡介
本書是一本語法與實踐相結合的Python入門教程,全書分為上、下篇。上篇為“Python語法與實踐”,以簡明的語言、易懂的案例介紹Python的變量與對像、運算符與表達式、控制語句、函數、內置數據類型,Python的面向對像特征,如類與對像、派生類、類的實例與靜態方法等Python語言的核心語法,以及迭代器與可迭代對像、閉包、裝飾器、@property、深拷貝與淺拷貝等不錯語言特征,還介紹了錯誤與異常、調試。在核心語法部分采用來自數據結構、遊戲編程、信息管理、機器學習、強化學習等其他學科和領域的一些經典問題作為實戰演練,展示了Python解決實際問題的強大功能,以提高初學者的實際編程能力,使其盡快熟悉語法的使用。下篇為“Python標準庫”,對常用的一些Python標準庫,如操作繫統接口模塊、時間日期模塊,以及正則表達式、並發計算、圖形用戶接口編程、網絡套接字編程、Internet應用編程......