版權聲明
O’Reilly Media, Inc. 介紹
業界評論
目標讀者
本書結構
Python版本
排版約定
使用代碼示例
SafariR Books Online
聯繫我們
致謝
第 1 章 Python 初探
1.1 真實世界中的Python
1.2 Python與其他語言
1.3 為什麼選擇Python
1.4 何時不應該使用Python
1.5 Python 2與Python 3
1.6 安裝Python
1.7 運行Python
1.7.1 使用交互式解釋器
1.7.2 使用Python文件
1.7.3 下一步
1.8 禪定一刻
1.9 練習
第 2 章 Python 基本元素:數字、字符串和變量
2.1 變量、名字和對像
2.2 數字
2.2.1 整數
2.2.2 優先級
2.2.3 基數
2.2.4 類型轉換
2.2.5 一個int型有多大
2.2.6 浮點數
2.2.7 數學函數
2.3 字符串
2.3.1 使用引號創建
2.3.2 使用str()進行類型轉換
2.3.3 使用\轉義
2.3.4 使用+拼接
2.3.5 使用*複製
2.3.6 使用[]提取字符
2.3.7 使用[start:end:step]分片
2.3.8 使用len()獲得長度
2.3.9 使用split()分割
2.3.10 使用join()合併
2.3.11 熟悉字符串
2.3.12 大小寫與對齊方式
2.3.13 使用replace()替換
2.3.14 更多關於字符串的內容
2.4 練習
第 3 章 Python 容器:列表、元組、字典與集合
3.1 列表和元組
3.2 列表
3.2.1 使用[]或list()創建列表
3.2.2 使用list()將其他數據類型轉換成列表
3.2.3 使用[offset]獲取元素
3.2.4 包含列表的列表
3.2.5 使用[offset]修改元素
3.2.6 指定範圍並使用切片提取元素
3.2.7 使用append()添加元素至尾部
3.2.8 使用extend()或+=合併列表
3.2.9 使用insert()在指定位置插入元素
3.2.10 使用del刪除指定位置的元素
3.2.11 使用remove()刪除具有指定值的元素
3.2.12 使用pop()獲取並刪除指定位置的元素
3.2.13 使用index()查詢具有特定值的元素位置
3.2.14 使用in判斷值是否存在
3.2.15 使用count()記錄特定值出現的次數
3.2.16 使用join()轉換為字符串
3.2.17 使用sort()重新排列元素
3.2.18 使用len()獲取長度
3.2.19 使用=賦值,使用copy()複製
3.3 元組
3.3.1 使用()創建元組
3.3.2 元組與列表
3.4 字典
3.4.1 使用{}創建字典
3.4.2 使用dict()轉換為字典
3.4.3 使用[key]添加或修改元素
3.4.4 使用update()合併字典
3.4.5 使用del刪除具有指定鍵的元素
3.4.6 使用clear()刪除所有元素
3.4.7 使用in判斷是否存在
3.4.8 使用[key]獲取元素
3.4.9 使用keys()獲取所有鍵
3.4.10 使用values()獲取所有值
3.4.11 使用items()獲取所有鍵值對
3.4.12 使用=賦值,使用copy()複製
3.5 集合
3.5.1 使用set()創建集合
3.5.2 使用set()將其他類型轉換為集合
3.5.3 使用in測試值是否存在
3.5.4 合併及運算符
3.6 比較幾種數據結構
3.7 建立大型數據結構
3.8 練習
第 4 章 Python 外殼:代碼結構
4.1 使用#註釋
4.2 使用\連接
4.3 使用if、elif和else進行比較
什麼是真值(True)
4.4 使用while進行循環
4.4.1 使用break跳出循環
4.4.2 使用continue跳到循環開始
4.4.3 循環外使用else
4.5 使用for迭代
4.5.1 使用break跳出循環
4.5.2 使用continue跳到循環開始
4.5.3 循環外使用else
4.5.4 使用zip()並行迭代
4.5.5 使用range()生成自然數序列
4.5.6 其他迭代方式
4.6 推導式
4.6.1 列表推導式
4.6.2 字典推導式
4.6.3 集合推導式
4.6.4 生成器推導式
4.7 函數
4.7.1 位置參數
4.7.2 關鍵字參數
4.7.3 指定默認參數值
4.7.4 使用*收集位置參數
4.7.5 使用**收集關鍵字參數
4.7.6 文檔字符串
4.7.7 一等公民:函數
4.7.8 內部函數
4.7.9 閉包
4.7.10 匿名函數:lambda()函數
4.8 生成器
4.9 裝飾器
4.10 命名空間和作用域
名稱中_和 __ 的用法
4.11 使用try和except處理錯誤
4.12 編寫自己的異常
4.13 練習
第 5 章 Python 盒子:模塊、包和程序
5.1 獨立的程序
5.2 命令行參數
5.3 模塊和import語句
5.3.1 導入模塊
5.3.2 使用別名導入模塊
5.3.3 導入模塊的一部分
5.3.4 模塊搜索路徑
5.4 包
5.5 Python標準庫
5.5.1 使用setdefault()和defaultdict()處理缺失的鍵
5.5.2 使用Counter()計數
5.5.3 使用有序字典OrderedDict()按鍵排序
5.5.4 雙端隊列:棧+隊列
5.5.5 使用itertools迭代代碼結構
5.5.6 使用pprint()友好輸出
5.6 獲取更多Python代碼
5.7 練習
第 6 章 對像和類
6.1 什麼是對像
6.2 使用class定義類
6.3 繼承
6.4 覆蓋方法
6.5 添加新方法
6.6 使用super從父類得到幫助
6.7 self的自辯
6.8 使用屬性對特性進行訪問和設置
6.9 使用名稱重整保護私有特性
6.10 方法的類型
6.11 鴨子類型
6.12 特殊方法
6.13 組合
6.14 何時使用類和對像而不是模塊
命名元組
6.15 練習
第 7 章 像高手一樣玩轉數據
7.1 文本字符串
7.1.1 Unicode
7.1.2 格式化
7.1.3 使用正則表達式匹配
7.2 二進制數據
7.2.1 字節和字節數組
7.2.2 使用struct轉換二進制數據
7.2.3 其他二進制數據工具
7.2.4 使用binascii()轉換字節/字符串
7.2.5 位運算符
7.3 練習
第 8 章 數據的歸宿
8.1 文件輸入/輸出
8.1.1 使用write()寫文本文件
8.1.2 使用read()、readline()或者readlines()讀文本文件
8.1.3 使用write()寫二進制文件
8.1.4 使用read()讀二進制文件
8.1.5 使用with自動關閉文件
8.1.6 使用seek()改變位置
8.2 結構化的文本文件
8.2.1 CSV
8.2.2 XML
8.2.3 HTML
8.2.4 JSON
8.2.5 YAML
8.2.6 安全提示
8.2.7 配置文件
8.2.8 其他交換格式
8.2.9 使用pickle序列化
8.3 結構化二進制文件
8.3.1 電子數據表
8.3.2 層次數據格式
8.4 關係型數據庫
8.4.1 SQL
8.4.2 DB-API
8.4.3 SQLite
8.4.4 MySQL
8.4.5 PostgreSQL
8.4.6 SQLAlchemy
8.5 NoSQL數據存儲
8.5.1 dbm family
8.5.2 memcached
8.5.3 Redis
8.5.4 其他的NoSQL
8.6 全文數據庫
8.7 練習
第 9 章 剖析 Web
9.1 Web客戶端
9.1.1 使用telnet進行測試
9.1.2 Python的標準Web庫
9.1.3 拋開標準庫:requests
9.2 Web服務端
9.2.1 最簡單的Python Web服務器
9.2.2 Web服務器網關接口
9.2.3 框架
9.2.4 Bottle
9.2.5 Flask
9.2.6 非Python的Web服務器
9.2.7 其他框架
9.3 Web服務和自動化
9.3.1 webbrowser模塊
9.3.2 Web API和表述性狀態傳遞
9.3.3 JSON
9.3.4 抓取數據
9.3.5 用BeautifulSoup來抓取HTML
9.4 練習
第 10 章 系統
10.1 文件
10.1.1 用open()創建文件
10.1.2 用exists()檢查文件是否存在
10.1.3 用isfile()檢查是否為文件
10.1.4 用copy()複製文件
10.1.5 用rename()重命名文件
10.1.6 用link()或者symlink()創建鏈接
10.1.7 用chmod()修改權限
10.1.8 用chown()修改所有者
10.1.9 用abspath()獲取路徑名
10.1.10 用realpath()獲取符號的路徑名
10.1.11 用remove()刪除文件
10.2 目錄
10.2.1 使用mkdir()創建目錄
10.2.2 使用rmdir()刪除目錄
10.2.3 使用listdir()列出目錄內容
10.2.4 使用chdir()修改當前目錄
10.2.5 使用glob()列出匹配文件
10.3 程序和進程
10.3.1 使用subprocess創建進程
10.3.2 使用multiprocessing創建進程
10.3.3 使用terminate()終止進程
10.4 日期和時間
10.4.1 datetime模塊
10.4.2 使用time模塊
10.4.3 讀寫日期和時間
10.4.4 其他模塊
10.5 練習
第 11 章 並發和網絡
11.1 並發
11.1.1 隊列
11.1.2 進程
11.1.3 線程
11.1.4 綠色線程和gevent
11.1.5 twisted
11.1.6 asyncio
11.1.7 Redis
11.1.8 隊列之上
11.2 網絡
11.2.1 模式
11.2.2 發佈-訂閱模型
11.2.3 TCP/IP
11.2.4 套接字
11.2.5 ZeroMQ
11.2.6 scapy
11.2.7 網絡服務
11.2.8 Web服務和API
11.2.9 遠程處理
11.2.10 大數據和MapReduce
11.2.11 在雲上工作
11.3 練習
第 12 章 成為真正的 Python 開發者
12.1 關於編程
12.2 尋找Python代碼
12.3 安裝包
12.3.1 使用pip
12.3.2 使用包管理工具
12.3.3 從源代碼安裝
12.4 集成開發環境
12.4.1 IDLE
12.4.2 PyCharm
12.4.3 IPython
12.5 命名和文檔
12.6 測試代碼
12.6.1 使用pylint、pyflakes和pep8檢查代碼
12.6.2 使用unittest進行測試
12.6.3 使用doctest進行測試
12.6.4 使用nose進行測試
12.6.5 其他測試框架
12.6.6 持續集成
12.7 調試Python代碼
12.8 使用pdb進行調試
12.9 記錄錯誤日誌
12.10 優化代碼
12.10.1 測量時間
12.10.2 算法和數據結構
12.10.3 Cython、NumPy和C擴展
12.10.4 PyPy
12.11 源碼控制
12.11.1 Mercurial
12.11.2 Git
12.12 複製本書代碼
12.13 更多內容
12.13.1 書
12.13.2 網站
12.13.3 社區
12.13.4 大會
12.14 後續內容
附錄 A Python 的藝術
A.1 2D圖形
A.1.1 標準庫
A.1.1 PIL和Pillow
A.1.3 ImageMagick
A.2 圖形用戶界面
A.3 3D圖形和動畫
A.4 平面圖、曲線圖和可視化
A.4.1 matplotlib
A.4.2 bokeh
A.5 遊戲
A.6 音頻和音樂
附錄 B 工作中的 Python
B.1 Microsoft Office套件
B.2 執行商業任務
B.3 處理商業數據
B.3.1 提取、轉換、加載
B.3.2 額外信息源
B.4 金融中的Python
B.5 商業數據安全性
B.6 地圖
B.6.1 格式
B.6.2 繪製地圖
B.6.3 應用和數據
附錄 C Python 的科學
C.1 標準庫中的數學和統計
C.1.1 數學函數
C.1.2 使用複數
C.1.3 使用小數對浮點數進行精確計算
C.1.4 使用分數進行有理數運算
C.1.5 使用array創建壓縮序列
C.1.6 使用statistics進行簡單數據統計
C.1.7 矩陣乘法
C.2 科學Python
C.3 Numpy
C.3.1 使用array()創建數組
C.3.2 使用arange()創建數組
C.3.3 使用zeros()、ones()和random()創建數組
C.3.4 使用reshape()改變矩陣的形狀
C.3.5 使用[]訪問元素
C.3.6 數組運算
C.3.7 線性代數
C.4 SciPy庫
C.5 SciKit庫
C.6 IPython庫
C.6.1 更好的解釋器
C.6.2 IPython筆記本
C.7 Pandas
C.8 Python和科學領域
附錄 D 安裝 Python 3
D.1 安裝標準Python
D.1.1 Mac OS X
D.1.2 Windows
D.1.3 Linux或Unix
D.2 安裝Anaconda
D.3 安裝並使用pip和virtualenv
D.4 安裝並使用conda
附錄 E 習題解答
E.1 第1章「Python初探」
E.2 第2章「Python基本元素:數字、字符串和變量」
E.3
E.4 第4章「Python外殼:代碼結構」
E.5 第5章「Python盒子:模塊、包和程序」
E.6 第6章「對像和類」
E.7 第7章「像高手一樣玩轉數據」
E.8 第8章「數據的歸宿」
E.9 第9章「剖析Web」
E.10 第10章「系統」
E.11 第11章「並發和網絡」
附錄 F 速查表
F.1 操作符優先級
F.2 字符串方法
F.2.1 改變大小寫
F.2.2 搜索
F.2.3 修改
F.2.4 格式化
F.2.5 字符串類型
F.3 字符串模塊屬性
作者介紹