《高階Python:代碼精進之路》是電子工業出版社出版圖書,作者是【美】Brian Overland 【美】John Bennett
詳細地介紹了Python語言的一些高級功能以及常見數據類型的高級用法,非常適合有一定基礎的讀者深入學習Python編程
基本介紹
- 中文名:高階Python:代碼精進之路
- 作者:【美】Brian Overland 、【美】John Bennett
- 譯者:李輝 、 韓慧昌
- 出版社:電子工業出版社
- 出版時間:2022年4月
- 頁數:580 頁
- 定價:168 元
- 開本:16 開
- ISBN:9787121430893
內容簡介,圖書目錄,作者簡介,
內容簡介
主要內容包括常見內置類型(數值、字元串和集合等)的高級用法和潛在的陷阱,用於文本處理的格式化方法和正則表達式,用於數值計算和大規模數據處理的math包和numpy包等。
圖書目錄
第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.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 不平衡矩陣
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.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.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 添加移動平均線
15.12 讓用戶選擇
總結
習題
推薦項目
附錄A Python運算符優先權表
附錄B Python中的內置函式
附錄C 集合(Set)方法
附錄D 字典(Dictionary)方法
附錄E 其他語法說明
作者簡介
Brian Overland出版了多本編程書,其中包括Python Without Fear和《寫給大忙人看的C++》(C++ for the Impatient)。在微軟的10年裡,他是一名軟體測試員、程式設計師、作家和經理。他是Visual Basic 1.0文檔項目的主要作者和整體負責人。通過製作課程,編寫圖書、手冊和教程,他向數十萬人傳授編程技術。
John Bennett曾任Proximity Technology、Franklin Electronic Publishing和Microsoft Corporation的高級軟體工程師。最近,他使用Python作為原型設計工具開發了新的程式語言。他參與過各種軟體項目,包括手持拼寫檢查器和東亞手寫識別軟體。他擁有9項美國專利。
譯者簡介
李輝,北京科技大學高等工程師學院教師,主要研究方向為機器視覺、機器人套用開發及競賽研究。獲得2018年機器人世界盃中國賽標準組季軍,多次獲得相關項目國家級和北京市級獎項。致力於學用結合,鼓勵學生在項目中鍛鍊提升。
韓慧昌,資深AI產品研發工程師,擁有豐富的AI產品和Python項目開發經驗。現微軟亞洲網際網路工程院算法工程師,微軟智匯學院講師,曾任ThoughtWorks高級諮詢師。熱衷於AI相關技術的分享,《Python機器學習手冊》中文譯者。