Python 快速入門, 3/e (The Quick Python Book, 3/e)

[美]娜奧米·塞德(Naomi Ceder)

  • Python 快速入門, 3/e (The Quick Python Book, 3/e)-preview-1
  • Python 快速入門, 3/e (The Quick Python Book, 3/e)-preview-2
Python 快速入門, 3/e (The Quick Python Book, 3/e)-preview-1

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

商品描述

這是一本Python快速入門書,基於Python 3.6編寫。本書分為4部分,第一部分講解Python的基礎知識,對Python進行概要的介紹;第二部分介紹Python編程的重點,涉及列表、元組、集合、字符串、字典、流程控制、函數、模塊和作用域、文件系統、異常等內容;第三部分闡釋Python的特性,涉及類和麵向對象、正則表達式、數據類型即對象、包、Python庫等內容;第四部分關註數據處理,涉及數據文件的處理、網絡數據、數據的保存和數據探索,最後給出了相關的案例。

本書框架結構清晰,內容編排合理,講解循序漸進,並結合大量示例和習題,讓讀者可以快速學習和掌握Python,既適合Python初學者學習,也適合作為專業程序員的簡明Python參考書。

作者簡介

作者:[美]娜奧米·塞德(Naomi Ceder)譯者:戴旭
娜奧米·塞德(Naomi Ceder)是Python軟件基金會zhu席。自2001年以來,她一直在學習、使用和教授Python。

她的編程生涯已經持續了近30年,使用過多種編程語言,做過Linux系統管理員、編程教師、開發人員和系統架構師。她從2001年開始使用Python,從此向各個層次的用戶講授Python,從12歲的孩子到專業編程人員都有。她向所有人宣傳Python,宣講加入內容豐富的社區的好處。她現在領導著Dick Blick Art Materials的一支開發團隊。

目錄大綱

第一部分開始篇
第1章關於Python 3 
1.1用Python的理由3 
1.2 Python的長處3 
1.2.1 Python易於使用4 
1.2.2 Python富有表現力4 
1.2.3 Python可讀性好5 
1.2.4 Python功能齊備5 
1.2.5 Python跨平台6 
1.2.6 Python免費6 
1.3 Python的短板6 
1.3.1 Python不是速度最快的語言7 
1.3.2 Python的庫不算最多7 
1.3.3 Python在編譯時不檢查變量類型7 
1.3.4 Python對移動應用的支持不足8 
1.3.5 Python對多處理器的利用不充分8 
1.4學Python 3的理由8 
1.5小結9 
第2章入門10 
2.1 Python的安裝10 
2.2基礎交互模式和IDLE 12 
2.2.1基礎交互模式12 
2.2.2 IDLE集成開發環境13 
2.2.3基礎交互模式和IDLE的適用場景13 
2.3使用IDLE的Python shell窗口13 
2.4第一個程序“Hello, world" 14
2.5利用交互式提示符探索Python 15 
2.6小結16 
第3章Python概述17 
3.1 Python簡介17 
3.2內置數據類型18 
3.2.1數值18 
3.2.2列表20 
3.2.3元組21 
3.2.4字符串22 
3.2 .5字典23 
3.2.6集合23 
3.2.7文件對象23 
3.3流程控制語句結構24 
3.3.1布爾值和表達式24 
3.3.2 if-elif-else語句25 
3.3.3 while循環25 
3.3.4 for循環25 
3.3.5函數定義26 
3.3.6異常27 
3.3.7用關鍵字with控制上下文27 
3.4創建模塊28 
3.5面向對象編程29 
3.6小結31 
第二部分重點內容
第4章基礎知識35 
4.1縮進和代碼塊構建35 
4.2識別註釋36 
4.3變量和賦值37 
4.4表達式38 
4.5字符串39 
4.6數值40 
4.6.1內置數值處理函數41
4.6.2高級數值處理函數41 
4.6.3數值計算41 
4.6.4複數41 
4.6.5高級複數函數42 
4.7 None值43 
4.8獲取用戶輸入43 
4.9內置操作符44 
4.10基本的Python編碼風格44 
4.11小結45 
第5章列表、元組和集合46 
5.1列表類似於數組46 
5.2列表的索引機制47 
5.3修改列表49 
5.4對列表排序51 
5.4.1自定義排序52 
5.4.2 sorted()函數53 
5.5其他常用的列表操作53 
5.5.1用in操作符判斷列表成員53 
5.5.2用+操作符拼接列表54 
5.5.3用*操作符初始化列表54 
5.5.4用min和max方法求列表的最小值和最大值54 
5.5.5用index方法搜索列表54 
5.5.6用count方法對匹配項計數55 
5.5.7列表操作小結55 
5.6嵌套列表和深複製56 
5.7元組58 
5.7.1元組的基礎知識59 
5.7 .2單個元素的元組應加上逗號60 
5.7.3元組的打包和拆包60
5.7.4列表和元組的相互轉換61 
5.8集合62 
5.8.1集合的操作62 
5.8.2不可變集合63 
5.9小結64 
第6章字符串65 
6.1將字符串理解為字符序列65 
6.2基本的字符串操作66 
6.3特殊字符和轉義序列66 
6.3.1基本的轉義序列66 
6.3.2數字格式(八進制、十六進制)和Unicode編碼的轉義序列67 
6.3.3對帶特殊字符的字符串打印和求值的差異68 
6.4字符串方法68 
6.4.1字符串的split和join方法69 
6.4.2將字符串轉換為數值70 
6.4.3去除多餘的空白符71 
6.4.4字符串搜索72 
6.4.5字符串修改74 
6.4.6利用列表修改字符串75 
6.4.7其他有用的字符串方法和常量75 
6.5將對象轉換為字符串77 
6.6使用format方法78 
6.6.1 format方法和位置參數78 
6.6.2 format方法和命名參數78 
6.6.3格式描述符79 
6.7用%格式化字符串79 
6.7.1使用格式化序列80 
6.7.2命名參數和格式化序列81
6.8字符串內插82 
6.9 bytes對象82 
6.10小結84 
第7章字典85 
7.1何為字典85 
7.2字典的其他操作87 
7.3單詞計數90 
7.4可用作字典鍵的對象90 
7.5稀疏矩陣91 
7.6將字典用作緩存92 
7.7字典的效率93 
7.8小結93 
第8章流程控制94 
8.1 while循環94 
8.2 if-elif-else語句95 
8.3 for循環96 
8.3.1 range函數97 
8.3.2用初值和步進值控制range函數97 
8.3.3在for循環中使用break和
continue語句98 
8.3.4 for循環和元組拆包98 
8.3.5 enumerate函數98 
8.3.6 zip函數99 
8.4列表和字典推導式99 
8.5語句、代碼塊和縮進101 
8.6布爾值和布爾表達式103 
8.6.1大多數Python對像都能用作布爾類型104 
8.6.2比較操作符和布爾操作符104 
8.7編寫簡單的文本文件分析程序105 
8.8小結106
第9章函數107 
9.1基本的函數定義107 
9.2多種函數參數108 
9.2.1按位置給出形參108 
9.2.2按形參名稱傳遞實參109 
9.2.3變長實參110 
9.2.4多種參數傳遞方式的混用111 
9.3將可變對像用作函數實參111 
9.4局部變量、非局部變量和全局變量113 
9.5將函數賦給變量115 
9.6 lambda表達式115 
9.7生成器函數116 
9.8裝飾器117 
9.9小結118 
第10章模塊和作用域規則120 
10.1何為模塊120 
10.2編寫第一個模塊121 
10.3 import語句123 
10.4模塊搜索路徑124 
10.5模塊內部私有名稱126 
10.6庫和第三方模塊127 
10.7 Python作用域規則和命名空間127 
10.8小結133 
第11章Python程序134 
11.1創建一個很簡單的程序134 
11.1.1從命令行啟動腳本135 
11.1.2命令行參數135 
11.1.3腳本輸入/輸出的重定
向136
11.1.4 argparse模塊137 
11.1.5 fileinput模塊的使用138 
11.2讓腳本在UNIX下直接運行140 
11.3 macOS系統中的腳本140 
11.4 Windows中多種腳本執行方式140 
11.4.1從命令窗口或PowerShell中啟動腳本141 
11.4.2 Windows中的其他運行方式141 
11.5程序和模塊141 
11.6發布Python應用程序146 
11.6.1 wheel包146 
11.6.2 zipapp和pex 146 
11.6.3 py2exe和py2app 147 
11.6.4用freeze創建可執行程序147 
11.7小結147 
第12章文件系統的使用149 
12.1 os、os.path和pathlib的對比149 
12.2路徑和路徑名150 
12.2.1絕對路徑和相對路徑150 
12.2.2當前工作目錄151 
12.2.3用pathlib模塊訪問目錄152 
12.2.4路徑名的處理152 
12.2.5用pathlib處理路徑名154 
12.2.6常用變量和函數155 
12.3獲取文件信息156 
12.4文件系統的其他操作158
12.5處理目錄樹下的所有文件161 
12.6小結162 
第13章文件的讀寫165 
13.1打開文件及file對象165 
13.2關閉文件166 
13.3以寫入等模式打開文件166 
13.4讀寫文本及二進制數據的函數167 
13.5用pathlib讀寫文件169 
13.6屏幕輸入/輸出及重定向169 
13.7用struct模塊讀取結構化的二進制數據172 
13.8用pickle將對象存入文件173 
13.9用shelve保存對象176 
13.10小結178 
第14章異常179 
14.1異常簡介179 
14.1.1錯誤和異常處理的一般原則179 
14.1.2異常較為正式的定義182 
14.1.3多種異常的處理182 
14.2 Python中的異常182 
14.2.1 Python異常的類型183 
14.2. 2引發異常185 
14.2.3捕獲並處理異常185 
14.2.4自定義新的異常187 
14.2.5用assert語句調試程序188 
14.2.6異常的繼承架構188 
14.2.7示例:用Python編寫的磁盤寫入程序189
14.2.8示例:正常計算過程中的異常189 
14.2.9異常的適用場合190 
14.3用到with關鍵字的上下文管理器191 
14.4小結192 
第三部分高級特性
第15章類和麵向對象編程195 
15.1定義類195 
15.2實例變量196 
15.3方法197 
15.4類變量199 
15.5靜態方法和類方法201 
15.5.1靜態方法201 
15.5.2類方法202 
15.6繼承203 
15.7類及實例變量的繼承205 
15.8概括:Python類的基礎知識206 
15.9私有變量和私有方法208 
15.10用@property獲得更為靈活的實例變量209 
15.11類實例的作用域規則和命名空間210 
15.12析構函數和內存管理214 
15.13多重繼承214 
15.14小結216 
第16章正則表達式218 
16.1何為正則表達式218 
16.2帶特殊字符的正則表達式219 
16.3正則表達式和原始字符串220 
16.4從字符串提取出匹配文本221 
16.5用正則表達式替換文本224
16.6小結226 
第17章數據類型即對象227 
17.1類型即對象227 
17.2類型的使用228 
17.3類型和用戶自定義類228 
17.4鴨子類型230 
17.5何為特殊方法屬性231 
17.6讓對象像列表一樣工作232 
17.7特殊方法屬性__getitem__ 232 
17.7.1工作原理233 
17.7.2實現完整的列表功能234 
17.8完整實現列表功能的對象235 
17.9由內置類型派生子類237 
17.9.1由列表類型派生子類237 
17.9.2由UserList派生子類238 
17.10特殊方法屬性的適用場景239 
17.11小結239 
第18章包240 
18.1何為包240 
18.2包的第一個示例240 
18.3包的實際例子242 
18.3.1包內的__init__.py文件243 
18.3.2 mathproj包的基本用法243 
18.3.3子包和子模塊的加載244 
18.3.4包內的import語句245 
18.4 __all__屬性246 
18.5包的合理使用246 
18.6小結247
第19章Python庫的使用248 
19.1 "功能齊備"的標準
庫248 
19.1.1各種數據類型的
管理248 
19.1.2文件和存儲操作250 
19.1.3操作系統服務的訪問251 
19.1.4互聯網協議及其數據格式的使用251 
19.1.5開發調試工具及運行時服務252 
19.2標準庫之外的庫253 
19.3添加其他Python庫253 
19.4通過pip和venv安裝Python庫253 
19.4.1帶--user標誌的安裝254 
19.4.2虛擬環境254 
19.5 PyPI(即“奶酪商店”) 255 
19.6小結255 
第四部分數據處理
第20章簡單的文件問題259 
20.1問題:沒完沒了的數據文件流259 
20.2場景:無窮無盡的產品源數據259 
20.3引入更多目錄結構261 
20.4節省存儲空間:壓縮和整理263 
20.4.1文件壓縮263 
20.4.2文件清理264 
20.5小結265 
第21章數據文件的處理266 
21.1 ETL簡介266 
21.2文本文件的讀取267
21.2.1文本編碼:ASCII、
Unicode等267 
21.2.2非結構化文本268 
21.2.3帶分隔符的普通文本文件270 
21.2.4 csv模塊271 
21.2.5讀取csv文件並存為字典的列表274 
21.3 Excel文件275 
21.4數據清洗276 
21.4.1清洗276 
21.4.2排序277 
21.4.3數據清洗時的問題和陷阱278 
21.5數據文件的寫入279 
21.5.1 CSV和其他帶分隔符的文件279 
21.5.2 Excel文件的寫入280 
21.5.3數據文件打包280 
21.6小結281 
第22章網絡數據282 
22.1獲取文件282 
22.1.1用Python從FTP服務器獲取文件283 
22.1.2通過SFTP協議獲取文件284 
22.1.3通過HTTP/HTTPS協議獲取文件284 
22.2通過API獲取數據285 
22.3結構化數據格式287 
22.3.1 JSON數據287 
22.3.2 XML數據291 
22.4抓取Web數據295 
22.5小結299 
第23章數據的保存300
23.1關係數據庫300 
23.2 SQLite:sqlite3數據庫的用法301 
23.3 MySQL、PostgreSQL和其他關係數據庫的使用303 
23.4利用ORM簡化數據庫操作303 
23.4.1 SQLAlchemy 304 
23.4.2用Alembic修改數據庫結構307 
23.5 NoSQL數據庫310 
23.6用Redis實現鍵/值存儲310 
23.7 MongoDB中的文檔313 
23.8小結315 
第24章數據探索316 
24.1 Python的數據探索工具316 
24.1.1 Python用於數據探索的優勢316 
24.1.2 Python能比電子表格做得更好317 
24.2 Jupyter記事本317 
24.2.1啟動內核318 
24.2.2執行單元格中的代碼318 
24.3 Python和pandas 319 
24.3.1為什麼要選用
pandas 319 
24.3.2 pandas的安裝320 
24.3.3 Data Frame 320 
24.4數據清洗322 
24.4.1用pandas加載並保存數據322 
24.4.2用Data Frame進行數據清洗324
24.5數據聚合和處理326 
24.5.1 Data Frame的合併326 
24.5.2數據選取327 
24.5.3分組與聚合328 
24.6數據繪圖329 
24.7不用pandas的理由330 
24.8小結331 
第25章案例研究332 
25.1數據的下載332 
25.2解析inventory數據335 
25.3根據經緯度選擇一個觀測站336 
25.4選擇觀測站並獲取其元數據338 
25.5獲取並解析真實的天氣數據341 
25.5.1獲取數據341 
25.5.2解析天氣數據341 
25.6將天氣數據存入數據庫(可選) 344 
25.7選取數據並作圖345 
25.8用pandas對數據繪圖346 
附錄A Python文檔使用指南347 
習題答案(異步社區下載)