高階 Python:代碼精進之路

李輝,韓慧昌

買這商品的人也買了...

商品描述

本書詳細地介紹了Python語言的一些高級功能以及常見數據類型的高級用法,非常適合有一定基礎的讀者深入學習Python編程。本書的主要內容包括常見內置類型(數值、字符串和集合等)的高級用法和潛在的陷阱,用於文本處理的格式化方法和正則表達式,用於數值計算和大規模數據處理的math包和numpy包等。此外,文件存儲、隨機數生成和圖表繪制也是本書的重要內容。本書還開發了一個“RPN腳本解釋器”項目,該項目貫穿本書的各個章節,通過對該項目的學習,你也可以開發出自己的“語言”。

目錄大綱

第1章基礎知識複習
1.1 Python快速入門
1.2 變量和命名
1.3 複合賦值運算符
1.4 Python算術運算符簡介
1.5 基本數據類型:整數和浮點
1.6 基本輸入與輸出
1.7 函數定義
1.8 Python中的if語句
1.9 Python中的while語句
1.10 幾個很棒的小應用程序
1.11 Python布爾運算符總結
1.12 函數的參數和返回值
1.13 前向引用問題
1.14 Python的字符串
1.15 Python列表(和一個很棒的排序應用程序)
1.16 for語句和range函數
1.17 Python元組
1.18 字典
1.19 集合
1.20 全局和局部變量
總結
習題
#項目
第2章字符串高#級功能
2.1 不可變的字符串
2.2 數據類型轉換
2.3 字符串運算符(+、=、*、>等)
2.4 索引和切片
2.5 單字符函數
2.6 用join函數構建字符串
2.7 重要的字符串函數
2.8 二進制、八進制和十六進制轉換函數
2.9 字符串的布爾方法
2.10 大小寫轉換方法
2.11 字符串的搜索和替換
2.12 使用split方法拆分字符串
2.13 從字符串中剝離字符
2.14 字符串對齊
總結
習題
#項目
第3章高#級列表功能
3.1 創建和使用Python列表
3.2 複製列表與復制列表變量
3.3 列表索引
3.3.1 正索引
3.3.2 負索引
3.3.3 使用enumerate生成索引號
3.4 從列表切片中獲取數據
3.5 列表切片賦值
3.6 列表運算符
3.7 淺拷貝與深拷貝
3.8 列表函數
3.9 列表方法:修改列表
3.10 列表方法:獲取列表信息
3.11 列表方法:重新排序
3.12 堆棧列表:RPN應用
3.13 reduce函數
3.14 lambda表達式(匿名函數)
3.15 列表推導式
3.16 字典和集合推導式
3.17 通過列表傳遞參數
3.18 多維列表
3.18.1 不ping衡矩陣
3.18.2 創建任意大的矩陣
總結
習題
#項目
第4章編程技巧、命令行和程序包
4.1 概述
4.2 22個編程技巧
4.2.1 根據需要使Python命令跨越多行
4.2.2 合理使用for循環
4.2.3 使用組合運算符(+=等)
4.2.4 進行多重賦值
4.2.5 使用元組賦值
4.2.6 使用高#級元組賦值
4.2.7 使用列表和字符串“乘法”
4.2.8 返回多個值
4.2.9 使用循環和else關鍵字
4.2.10 使用布爾值和not運算符
4.2.11 將字符串視為字符列表
4.2.12 使用replace方法消除字符
4.2.13 不寫不必要的循環
4.2.14 使用鍊式比較(n < x < m)
4.2.15 用函數列表模擬switch語句
4.2.16 正確使用is運算符
4.2.17 使用單行for循環
4.2.18 將多條語句壓縮到一行
4.2.19 編寫單行if/then/else語句
4.2.20 用range函數創建枚舉值
4.2.21 在IDLE中減少效率低下的print函數的使用
4.2.22 用下畫線分隔大數字
4.3 從命令行運行Python
4.3.1 在Windows系統上運行
4.3.2 在Macintosh系統上運行
4.3.3 使用pip或pip3下載軟件包
4.4 編寫和使用文檔字符串
4.5 導入軟件包
4.6 Python軟件包簡介
4.7 Python函數作為一類對象
4.8 可變長度參數列表
4.8.1 *args列表參數
4.8.2 **kwargs列表參數
4.9 裝飾器和函數分析器
4.10 生成器
4.10.1 什麼是迭代器
4.10.2 關於生成器
4.11 訪問命令行參數
總結
習題
#項目
第5章精確格式化文本
5.1 使用字符串格式說明符(%)進行格式化
5.2 %格式說明符
5.3 使用%創建可變寬度輸出字段
5.4 全局函數format
5.5 format方法介紹
5.6 根據position(名稱或索引)引用參數
5.7 repr轉換與str轉換
5.8 format函數/方法的spec字段
5.8.1 輸出字段的寬度
5.8.2 文本對齊:fill和align字符
5.8.3 符號字符sign
5.8.4 前導“0”字符
5.8.5 千位分隔符
5.8.6 精度符號precision
5.8.7 將precision用於字符串格式化
5.8.8 類型說明符type
5.8.9 以二進制顯示
5.8.10 以八進制和十六進制顯示
5.8.11 顯示百分數
5.8.12 二進製表示的例子
5.9 可變長字段
總結
習題
#項目
第6章正則表達式第1部分
6.1 正則表達式簡介
6.2 實用案例:電話號碼
6.3 改進匹配模式
6.4 正則表達式是如何工作的:編譯與運行
6.5 忽略大小寫和其他功能標誌
6.6 正則表達式:基本語法摘要
6.6.1 元字符
6.6.2 字符集
6.6.3 模式量詞
6.6.4 回溯、貪婪和非貪婪
6.7 一個實用的正則表達式案例
6.8 使用match對象
6.9 在字符串中搜索模式
6.10 迭代搜索findall
6.11 findall函數和分組問題
6.12 搜索重複模式
6.13 文本替換
總結
習題
#項目
第7章正則表達式,第2部分
7.1 正則表達式高#級語法摘要
7.2 非標記組
7.2.1 匹配規範數字示例
7.2.2 解決標記問題
7.3 貪婪匹配與非貪婪匹配
7.4 先行斷言
7.5 使用先行斷言檢查多個模式
7.6 負向先行斷言
7.7 命名組
7.8 re.split函數
7.9 Scanner類和RPN項目
7.10 RPN:使用掃描器做更多的事情
總結
習題
#項目
第8章文本和二進製文件
8.1 兩種文件格式:文本文件和二進製文件
8.1.1 文本文件
8.1.2 二進製文件
8.2 二進製文件讀寫方法摘要
8.3 文件/目錄系統
8.4 處理文件打開異常
8.5 使用with關鍵字
8.6 讀/寫操作總結
8.7 文本文件操作詳解
8.8 使用文件指針(seek)
8.9 將文本讀入RPN項目
8.9.1 更新RPN解釋器代碼
8.9.2 從文本文件讀取RPN
8.9.3 向RPN中添加賦值運算符
8.10 直接讀/寫二進製文件
8.11 將數據轉換為定長字段(struct)
8.11.1 一次讀/寫一個數字
8.11.2 一次讀/寫多個數字
8.11.3 讀/寫固定長度的字符串
8.11.4 讀/寫可變長度的字符串
8.11.5 讀/寫字符串和數字的組合
8.11.6 底層細節——高位優先和低位優先
8.12 使用pickle軟件包
8.13 使用shelve軟件包
總結
習題
#項目
第9章類和魔術方法
9.1 類和對象的基礎語法
9.2 Python中的實例變量
9.3 __init__和__new__方法
9.4 類和前向引用問題
9.5 Python中的方法
9.6 公有和私有變量與方法
9.7 繼承
9.8 多重繼承
9.9 魔術方法總結
9.10 魔術方法詳解
9.10.1 Python類的字符串表示
9.10.2 對象表示方法
9.10.3 比較方法
9.10.4 算術運算符方法
9.10.5 一元算術方法
9.10.6 反向方法
9.10.7 就地運算符
9.10.8 轉換方法
9.10.9 集合類方法
9.10.10 實現__iter__和__next__方法
9.11 支持多種參數類型
9.12 動態設置和獲取屬性
總結
習題
#項目
第10章Decimal、Money和其他類型
10.1 數值類型概述
10.2 浮點類型的局限性
10.3 Decimal類
10.4 Decimal對象的特殊操作
10.5 Decimal類的應用
10.6 設計Money類
10.7 構建基礎的Money類(“包含”方式)
10.8 顯示Money對象(__str__、__repr__)
10.9 其他有關Money類的操作
10.10 程序Demo:Money計算器
10.11 設置默認貨幣
10.12 Money類與繼承
10.13 Fraction類
10.14 complex類
總結
習題
建議項目
第11章random包和math包
11.1 random包概述
11.2 隨機函數總覽
11.3 測試random包的行為
11.4 猜數字遊戲
11.5 創建Deck對象
11.6 在牌庫中添加圖形
11.7 繪製正態分佈圖
11.8 編寫自己的隨機數生成器
11.8.1 生成隨機數的原理
11.8.2 簡單的生成器
11.9 math包概述
11.10 math包函數概覽
11.11 使用特殊值(pi)
11.12 三角函數:計算樹的高度
11.13 對數:再來一局猜數字
11.13.1 對數如何工作
11.13.2 將對數應用於實際問題
總結
習題
#項目
第12章Python科學計算包——numpy
12.1 array、numpy和matplotlib軟件包概述
12.1.1 array軟件包
12.1.2 numpy軟件包
12.1.3 numpy.random軟件包
12.1.4 matplotlib軟件包
12.2 使用array軟件包
12.3 下載並導入numpy包
12.4 numpy包簡介:求1~1 000 000的和
12.5 創建numpy數組
12.5.1 array函數
12.5.2 arange函數
12.5.3 linspace函數
12.5.4 empty函數
12.5.5 eye函數
12.5.6 ones函數
12.5.7 zeros函數
12.5.8 full函數
12.5.9 copy函數
12.5.10 fromfunction函數
12.6 案例:創建一個乘法表
12.7 對numpy數組進行批處理操作
12.8 numpy數組的切片
12.9 多維切片
12.10 布爾數組:用作numpy數組的掩碼
12.11 numpy和埃拉托色尼算法
12.12 獲取numpy數組的統計信息(標準差)
12.13 從numpy數組中獲取行和列
總結
習題
#項目
第13章numpy的高#級應用
13.1 基於numpy的高#級數學運算
13.2 下載matplotlib包
13.3 使用numpy和matplotlib繪圖
13.4 繪製多條線
13.5 繪製複利曲線
13.6 使用matplotlib創建直方圖
13.7 圓和長寬比
13.8 繪製餅圖
13.9 使用numpy進行線性代數運算
13.9.1 點積
13.9.2 外積函數
13.9.3 其他線性代數函數
13.10 三維繪圖
13.11 numpy軟件包在金融領域的應用
13.12 使用xticks和yticks函數調整數軸
13.13 numpy混合數據記錄
13.14 讀取和寫入numpy數據文件
總結
習題
#項目
第14章多模塊和RPN示例
14.1 Python中的模塊概述
14.2 一個簡單的雙模塊的示例
14.3 import語句的多種形式
14.4 使用__all__符號
14.5 公有變量和模塊私有變量
14.6 主模塊和__main__函數
14.7 陷阱:相互導入問題
14.8 RPN示例:分解為兩個模塊
14.9 RPN示例:添加更多I/O指令
14.10 RPN示例的進一步修改
14.10.1 添加行號跟踪功能
14.10.2 添加非零跳轉功能
14.10.3 大於(>)和獲取隨機數(!)
14.11 RPN案例總結
總結
習題
#項目
第15章從互聯網獲取財務數據
15.1 本章計劃
15.2 pandas程序包介紹
15.3 stock_load:一個簡單的數據讀取器
15.4 創建簡單的股價圖表
15.5 添加標題和圖例
15.6 編寫makeplot函數(重構)
15.7 繪製兩支股票的價格走勢圖
15.8 繪製其他圖形
15.9 限制時間範圍
15.10 拆分圖表:對交易量進行子圖繪製
15.11 添加移動ping均線
15.12 讓用戶選擇
總結
習題
#項目
附錄A Python運算符優先級表
附錄B Python中的內置函數
附錄C 集合(Set)方法
附錄D 字典(Dictionary)方法
附錄E 其他語法說明