Python程序設計與算法基礎教程(第3版·項目實訓·題庫·微課視頻版)

江紅、餘青松

  • 出版商: 清華大學
  • 出版日期: 2023-04-01
  • 定價: $359
  • 售價: 8.5$305
  • 語言: 簡體中文
  • ISBN: 7302623813
  • ISBN-13: 9787302623816
  • 下單後立即進貨 (約4週~6週)

  • Python程序設計與算法基礎教程(第3版·項目實訓·題庫·微課視頻版)-preview-1
  • Python程序設計與算法基礎教程(第3版·項目實訓·題庫·微課視頻版)-preview-2
  • Python程序設計與算法基礎教程(第3版·項目實訓·題庫·微課視頻版)-preview-3
Python程序設計與算法基礎教程(第3版·項目實訓·題庫·微課視頻版)-preview-1

商品描述

本書集教材、練習冊、上機指導、題庫於一體,基於Windows 10和Python 3.10構建Python開發平臺,闡述Python語言的基礎知識,以及使用Python語言的實際開發應用實例,具體內容包括Python 程序設計導論,Python語言基礎,程序流程控制,常用內置數據類型,組合數據類型,輸入、輸出和文件,錯誤和異常處理,函數和函數式編程,面向對象的程序設計,模塊和 模塊化程序設計,數據結構與算法基礎,圖形用戶界面,圖形繪制和數據可視化,數值日期和時間處理,字符串和文本處理,數據庫訪問,網絡編程和通信,並行計算,系統管理以及Python計算生態等。 本書編者結合多年的程序設計、系統開發以及授課經驗,由淺入深、循序漸進地介紹Python程序設計語言,讓讀者能夠較為系統全面地掌握程序設計的理論和應用。本書提供了近1000個實例、523道習題、600多個實踐操作任務、48個綜合應用案例及 1100分鐘教學視頻。 本書可作為高等院校各專業的電腦程序設計教程,也可作為廣大程序設計開發者、愛好者的自學參考書。

目錄大綱

源碼下載

第1章Python程序設計導論

1.1程序設計語言

1.1.1電腦和程序

1.1.2程序設計和編程語言

1.1.3計算思維和程序設計方法

1.1.4程序的編寫和執行

1.2Python語言概述

1.2.1Python語言簡介

1.2.2Python語言的特點

1.2.3Python語言的應用範圍

1.3Python語言版本和開發環境

1.3.1Python語言的版本

1.3.2Python語言的實現

1.3.3Python語言的集成開發環境

1.3.4下載Python

1.3.5安裝Python

1.3.6安裝和管理Python擴展包

1.4使用Python解釋器解釋執行Python程序

1.4.1運行Python解釋器

1.4.2運行Python集成開發環境

1.5使用文本編輯器和命令行編寫和執行Python源文件程序

1.5.1編寫輸出“Hello,World!”程序

1.5.2運行Python源代碼程序

1.5.3命令行參數

1.6使用集成開發環境(IDLE)編寫和執行Python源文件程序

1.6.1使用IDLE編寫程序

1.6.2使用IDLE編輯和執行程序

1.7程序的打包和發布

1.7.1安裝PyInstaller

1.7.2使用PyInstaller生成可執行程序

1.8在線幫助和相關資源

1.8.1Python交互式幫助系統

1.8.2Python文檔

1.8.3Python官網

1.8.4PEP

1.8.5Python擴展庫索引(PyPI)

1.9習題

1.10上機實踐

1.11案例研究1: 安裝和使用Python科學計算環境Anaconda

1.12案例研究2: 安裝和使用PyCharm開發環境

第2章Python語言基礎

2.1Python程序概述

2.1.1引例

2.1.2Python程序構成

2.2Python對象和引用

2.2.1Python對象概述

2.2.2字面量和對象的創建

2.2.3創建對象的其他方法

2.2.4數據類型

2.2.5變量和對象的引用

2.2.6Python是動態類型語言

2.2.7Python是強類型語言

2.2.8對象內存示意圖

2.2.9對象的值比較(==)和引用判別(is)

2.2.10不可變對象(immutable)和可變對象(mutable)

2.3標識符及其命名規則

2.3.1標識符

2.3.2保留關鍵字

2.3.3Python預定義標識符

2.3.4命名規則

2.4變量和賦值語句

2.4.1變量的聲明和賦值

2.4.2鏈式賦值語句

2.4.3復合賦值語句

2.4.4刪除變量

2.4.5序列解包賦值

2.4.6常量

2.5表達式和運算符

2.5.1表達式的組成

2.5.2表達式的書寫規則

2.5.3運算符概述

2.5.4Python運算符及其優先級

2.6語句

2.6.1Python語句

2.6.2Python語句的書寫規則

2.6.3復合語句及其縮進書寫規則

2.6.4註釋語句

2.6.5空語句

2.7函數

2.7.1函數的創建和調用

2.7.2內置函數

2.7.3模塊函數

2.7.4函數API

2.8類和對象

2.8.1創建類對象

2.8.2實例對象的創建和使用

2.9模塊和包

2.9.1模塊和包的概念

2.9.2導入和使用模塊

2.10綜合應用: turtle模塊和海龜繪圖

2.10.1海龜繪圖概述

2.10.2繪制正方形

2.10.3海龜繪圖應用實例

2.11習題

2.12上機實踐

2.13案例研究: 使用Pillow庫處理圖像文件

第3章程序流程控制

3.1程序的流程

3.1.1輸入、處理和輸出

3.1.2算法和數據結構

3.1.3程序流程圖

3.2順序結構

3.3選擇結構

3.3.1分支結構的形式

3.3.2單分支結構

3.3.3雙分支結構

3.3.4多分支結構

3.3.5if語句的嵌套

3.3.6if語句典型示例代碼

3.3.7選擇結構綜合舉例

3.4循環結構

3.4.1可迭代對象

3.4.2range對象

3.4.3for循環

3.4.4while循環

3.4.5循環的嵌套

3.4.6break語句

3.4.7continue語句

3.4.8死循環(無限循環)

3.4.9else子句

3.4.10enumerate()函數和循環

3.4.11zip()函數和循環

3.4.12map()函數和循環

3.4.13循環語句典型示例代碼

3.4.14循環結構綜合舉例

3.5綜合應用: turtle模塊的復雜圖形繪制

3.5.1繪制正方形(改進版)

3.5.2繪制圓形螺旋

3.6習題

3.7上機實踐

3.8案例研究: 使用嵌套循環實現圖像處理算法

第4章常用內置數據類型

4.1Python內置數據類型概述

4.1.1數值數據類型

4.1.2序列數據類型

4.1.3集合數據類型

4.1.4字典數據類型

4.1.5NoneType、NotImplementedType和EllipsisType

4.1.6其他數據類型

4.2int數據類型(任意精度整數)

4.2.1整型字面量

4.2.2int對象

4.2.3int對象的方法

4.2.4整數的運算

4.3float類型(有限精度浮點數)

4.3.1浮點類型字面量

4.3.2float對象

4.3.3float對象的方法

4.3.4浮點數的表示和相等性比較

4.3.5浮點數的運算

4.4bool數據類型

4.4.1布爾值字面量

4.4.2bool對象

4.4.3布爾值的運算

4.5complex類型

4.5.1復數字面量

4.5.2complex對象

4.5.3complex對象的屬性和方法

4.5.4復數的運算

4.6條件表達式、關系運算符、測試運算符和邏輯運算符

4.6.1條件表達式

4.6.2關系運算符和測試運算符

4.6.3邏輯運算符

4.7算術運算符和位運算符

4.7.1算術運算符

4.7.2位運算符

4.8混合運算和數值類型轉換

4.8.1隱式轉換

4.8.2顯式轉換(強制轉換)

4.9內置標準數學函數

4.9.1內置數學運算函數

4.9.2數制轉換函數

4.10math模塊和數學函數

4.10.1math模塊的API

4.10.2math模塊應用舉例

4.11random模塊和隨機函數

4.11.1種子和隨機狀態

4.11.2隨機整數

4.11.3隨機序列

4.12綜合應用舉例

4.12.1蒙特卡羅模擬: 賭徒破產命運

4.12.2使用隨機數估算圓周率

4.12.3使用阿基米德方法估算圓周率

4.13習題

4.14上機實踐

4.15案例研究: 科學計算和數據分析

第5章組合數據類型

5.1Python序列數據概述

5.1.1數組

5.1.2序列數據類型

5.2序列數據的基本操作

5.2.1序列的長度、最大值、最小值、求和

5.2.2序列的索引訪問操作

5.2.3序列的切片操作

5.2.4序列的連接和重復操作

5.2.5序列的成員關系操作

5.2.6序列的比較運算操作

5.2.7序列的排序操作

5.2.8內置函數all()和any()

5.2.9序列的拆分操作

5.3列表

5.3.1使用列表字面量創建列表實例對象

5.3.2使用list對象創建列表實例對象

5.3.3列表解析表達式

5.3.4列表的序列操作

5.3.5列表對象的方法

5.3.6列表的典型示例代碼

5.4元組

5.4.1使用元組字面量創建元組實例對象

5.4.2使用tuple對象創建元組實例對象

5.4.3元組的序列操作

5.4.4元組對象的方法

5.4.5元組的典型示例代碼

5.5字符串

5.5.1使用字符串字面量創建字符串對象

5.5.2字符串編碼

5.5.3轉義字符

5.5.4使用內置函數str()創建字符串對象

5.5.5字符串的序列操作

5.5.6字符串對象的方法

5.5.7字符串的格式化

5.5.8f字符串(字符串插值)

5.5.9字符串的典型示例代碼

5.5.10字符串應用舉例

5.6字節序列

5.6.1bytes字面量

5.6.2創建bytes對象

5.6.3創建bytearray對象

5.6.4bytes和bytearray的序列操作

5.6.5字節編碼和字節解碼

5.6.6字節序列的典型示例代碼

5.7字典(映射)

5.7.1對象的哈希(hash)值

5.7.2字典的定義

5.7.3字典解析表達式

5.7.4字典的訪問操作

5.7.5字典的視圖對象

5.7.6字典的遍歷

5.7.7判斷字典鍵是否存在

5.7.8字典對象的長度和比較

5.7.9字典對象的方法

5.7.10字典的典型示例代碼

5.8集合

5.8.1集合的定義

5.8.2集合解析表達式

5.8.3判斷集合元素是否存在

5.8.4集合的運算: 並集、交集、差集和對稱差集

5.8.5集合的比較運算: 相等、子集和超集

5.8.6集合的長度、最大值、最小值、元素和

5.8.7可變集合的方法

5.8.8集合的典型示例代碼

5.9數據類型綜合應用舉例

5.9.1字符串簡單加密和解密

5.9.2去除列表中的重復項

5.9.3基於列表的簡易花名冊管理系統

5.9.4頻數表和直方圖

5.10習題

5.11上機實踐

5.12案例研究: 猜單詞游戲

第6章輸入、輸出和文件

6.1輸入和輸出概述

6.2命令行參數

6.2.1sys.argv與命令行參數

6.2.2argparse模塊和命令行參數解析

6.3標準輸入函數和標準輸出函數

6.3.1輸入函數和輸出函數

6.3.2交互式用戶輸入

6.3.3運行時提示輸入密碼

6.4文件和文件對象

6.4.1文件對象和open函數

6.4.2文件的打開、寫入、讀取和關閉

6.4.3with語句和上下文管理協議

6.5文本文件的寫入、讀取和編碼

6.5.1文本文件的寫入

6.5.2文本文件的讀取

6.5.3文本文件的編碼

6.6二進制文件的寫入和讀取

6.6.1二進制文件的寫入

6.6.2二進制文件的讀取

6.7隨機文件的寫入和讀取

6.8CSV格式文件的讀取和寫入

6.8.1CSV格式文件和csv模塊

6.8.2csv.reader對象和CSV文件的讀取

6.8.3csv.writer對象和CSV文件的寫入

6.9對象序列化

6.9.1對象序列化概述

6.9.2pickle模塊和對象序列化

6.9.3json模塊和JSON格式數據

6.10os模塊和文件目錄操作

6.11標準輸入、輸出和錯誤流

6.11.1標準輸入、輸出和錯誤流文件對象

6.11.2讀取任意長度的輸入流

6.11.3標準輸入、輸出和錯誤流重定向

6.12重定向和管道

6.12.1重定向標準輸出到一個文件

6.12.2重定向文件到標準輸入

6.12.3管道

6.12.4過濾器

6.13綜合應用: 文件數據的統計和分析

6.13.1統計存儲在文本文件中的學生成績信息

6.13.2統計存儲在文本文件中的天氣溫度信息

6.13.3統計存儲在CSV文件中的學生成績信息

6.13.4基於字典的通訊錄

6.14習題

6.15上機實踐

6.16案例研究: 21點撲克牌游戲

第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捕獲處理異常機制概述

7.2.5Python虛擬機捕獲處理異常

7.2.6使用try…except…else…finally語句捕獲處理異常

7.2.7捕獲異常的順序

7.2.8finally塊和發生異常後的處理

7.2.9自定義異常類

7.3斷言處理

7.3.1斷言處理概述

7.3.2assert語句和AssertionError類

7.3.3啟用/禁用斷言

7.4程序的基本調試方法

7.4.1語法錯誤的調試

7.4.2運行時錯誤的調試

7.4.3邏輯錯誤的調試

7.5使用logging模塊記錄日誌

7.5.1logging模塊概述

7.5.2logging的配置和使用

7.6綜合應用: 錯誤和異常處理

7.6.1兩個整數的輸入及求和

7.6.2打開指定的文件並顯示文件的內容

7.7習題

7.8上機實踐

7.9案例研究: 使用調試器調試Python程序

第8章函數和函數式編程

8.1函數概述

8.1.1函數的基本概念

8.1.2函數的功能

8.1.3Python函數分類

8.2函數的聲明和調用

8.2.1函數對象的創建

8.2.2函數的調用

8.2.3函數的副作用

8.2.4lambda表達式和匿名函數

8.3參數的傳遞

8.3.1形式參數和實際參數

8.3.2形式參數變量和對象引用傳遞

8.3.3傳遞不可變對象的引用

8.3.4傳遞可變對象的引用

8.3.5可選參數

8.3.6位置參數和命名參數(關鍵字參數)

8.3.7可變參數(打包參數)和解包參數

8.3.8強制命名參數(Keywordonly)

8.3.9參數類型檢查和類型註解(annotation)

8.4函數的返回值

8.4.1return語句和函數返回值

8.4.2多條return語句

8.4.3返回多個值

8.5變量的作用域

8.5.1全局變量

8.5.2局部變量

8.5.3全局語句global

8.5.4非局部語句nonlocal

8.5.5類成員變量

8.5.6查看局部變量和全局變量(locals和globals函數)

8.6遞歸函數

8.6.1遞歸函數的定義

8.6.2遞歸函數的原理

8.6.3編寫遞歸函數需要註意的問題

8.6.4遞歸函數的應用: 最大公約數

8.6.5遞歸函數的應用: 漢諾塔

8.7內置函數的使用

8.7.1內置函數一覽

8.7.2eval()函數(動態表達式的求值)

8.7.3exec()函數(動態語句的執行)

8.7.4compile()函數

8.8Python函數式編程基礎

8.8.1作為對象的函數

8.8.2高階函數

8.8.3map()函數

8.8.4filter()函數

8.8.5operator模塊和操作符函數

8.8.6functools.reduce()函數

8.8.7偏函數

8.8.8sorted()函數

8.8.9函數裝飾器

8.9綜合應用: turtle模塊繪制復雜的圖形

8.9.1繪制多邊形

8.9.2遞歸圖形

8.10習題

8.11上機實踐

8.12案例研究: 井字棋游戲

第9章面向對象的程序設計

9.1面向對象的概念

9.1.1對象的定義

9.1.2封裝

9.1.3繼承

9.1.4多態性

9.2類對象和實例對象

9.2.1類對象

9.2.2實例對象

9.3屬性

9.3.1實例對象屬性

9.3.2類對象屬性

9.3.3私有屬性和公有屬性

9.3.4@property裝飾器

9.3.5特殊屬性

9.3.6自定義屬性

9.4方法

9.4.1對象實例方法

9.4.2靜態方法(@staticmethod)

9.4.3類方法(@classmethod)

9.4.4__init__()方法和__new__()方法

9.4.5__del__()方法

9.4.6私有方法與公有方法

9.4.7方法重載

9.5繼承

9.5.1派生類

9.5.2查看繼承的層次關系

9.5.3類成員的繼承和重寫

9.6對象的特殊方法

9.6.1對象的特殊方法概述

9.6.2運算符重載與對象的特殊方法

9.6.3@functools.total_ordering裝飾器

9.6.4__call__()方法和可調用對象

9.7對象的引用、淺拷貝和深拷貝

9.7.1對象的引用

9.7.2對象的淺拷貝

9.7.3對象的深拷貝

9.8可迭代對象: 迭代器和生成器

9.8.1可迭代對象

9.8.2迭代器

9.8.3迭代器協議

9.8.4可迭代對象的迭代: iter()函數和next()函數

9.8.5可迭代對象的迭代: for語句

9.8.6自定義可迭代對象和迭代器

9.8.7生成器函數

9.8.8反向迭代: reversed迭代器

9.8.9生成器表達式

9.8.10range可迭代對象

9.8.11map迭代器和itertools.starmap迭代器

9.8.12filter迭代器和itertools.filterfalse迭代器

9.8.13zip迭代器和itertools.zip_longest迭代器

9.8.14enumerate迭代器

9.8.15無窮序列迭代器itertools.count、cycle和repeat

9.8.16累計迭代器itertools.accumulate

9.8.17級聯迭代器itertools.chain

9.8.18選擇壓縮迭代器itertools.compress

9.8.19截取迭代器itertools.dropwhile和takewhile

9.8.20切片迭代器itertools.islice

9.8.21分組迭代器itertools.groupby

9.8.22返回多個迭代器itertools.tee

9.8.23組合迭代器itertools.combinations和combinations_with_replacement

9.8.24排列迭代器itertools.permutations

9.8.25笛卡兒積迭代器itertools.product

9.9自定義類應用舉例

9.9.1Color類

9.9.2Histogram類

9.10習題

9.11上機實踐

9.12案例研究: 文本相似度比較分析

第10章模塊和模塊化程序設計

10.1模塊化程序設計的概念

10.1.1模塊化程序設計

10.1.2模塊的API

10.1.3模塊的實現

10.1.4模塊的客戶端

10.1.5模塊化程序設計的優越性

10.2模塊的設計和實現

10.2.1模塊設計的一般原則

10.2.2API設計

10.2.3創建模塊

10.2.4模塊的私有函數

10.2.5模塊的測試代碼

10.2.6編寫模塊文檔字符串

10.2.7按字節編譯的.pyc文件

10.3模塊的導入和使用

10.3.1導入模塊和使用模塊

10.3.2導入模塊中的成員

10.3.3重新加載模塊

10.3.4動態導入模塊

10.3.5查看導入的模塊

10.4包

10.4.1包的概念

10.4.2創建包

10.4.3包的導入和使用

10.5模塊的導入順序

10.5.1import語句導入模塊的類型

10.5.2模塊搜索路徑

10.5.3導入模塊時的搜索順序

10.5.4dir()函數

10.6名稱空間與名稱查找順序

10.6.1名稱空間概述

10.6.2名稱查找順序

10.6.3頂層模塊和__name__變量

10.6.4Python解釋器是頂層模塊

10.6.5全局名稱空間

10.6.6局部名稱空間

10.6.7類和對象名稱空間

10.7習題

10.8上機實踐

10.9案例研究: 基於模塊的庫存管理系統

第11章數據結構與算法基礎

11.1數據結構基礎

11.1.1數據結構的定義

11.1.2數據的邏輯結構

11.1.3數據的物理結構

11.1.4常用算法

11.2常用的數據結構

11.2.1線性表

11.2.2隊列

11.2.3棧

11.2.4樹

11.2.5圖

11.2.6堆

11.2.7散列表

11.3算法及其性能分析

11.3.1算法概述

11.3.2算法的時間復雜度分析

11.3.3增長量級

11.3.4算法的空間復雜度分析

11.4查找算法

11.4.1順序查找法

11.4.2二分查找法

11.4.3Python語言提供的查找算法

11.5排序算法

11.5.1冒泡排序法

11.5.2選擇排序法

11.5.3插入排序法

11.5.4歸並排序法

11.5.5快速排序法

11.5.6Python語言提供的排序算法

11.6數組

11.6.1列表和數組

11.6.2array.array對象和數組

11.7棧和隊列

11.7.1棧的實現: 使用列表

11.7.2deque對象

11.7.3deque作為棧

11.7.4deque作為隊列

11.8collections模塊的其他數據結構

11.8.1collections模塊概述

11.8.2namedtuple對象

11.8.3UserDict、UserList和UserString對象

11.8.4defaultdict對象

11.8.5OrderedDict對象

11.8.6ChainMap對象

11.8.7Counter對象

11.9習題

11.10上機實踐

11.11案例研究: 程序運行時間度量分析

第12章圖形用戶界面

12.1圖形用戶界面概述

12.1.1tkinter

12.1.2其他GUI庫簡介

12.2tkinter概述

12.2.1tkinter模塊

12.2.2圖形用戶界面構成

12.2.3框架和GUI應用程序類

12.2.4tkinter主窗口

12.3幾何佈局管理器

12.3.1pack幾何佈局管理器

12.3.2grid幾何佈局管理器

12.3.3place幾何佈局管理器

12.4事件處理

12.4.1事件類型

12.4.2事件綁定

12.4.3事件處理函數

12.5常用組件

12.5.1Label(標簽)

12.5.2LabelFrame(標簽框架)

12.5.3Button(按鈕)

12.5.4Message(消息)

12.5.5Entry(單行文本框)

12.5.6Text(多行文本框)

12.5.7Radiobutton(單選按鈕)

12.5.8Checkbutton(復選框)

12.5.9Listbox(列表框)

12.5.10OptionMenu(選擇項)

12.5.11Scale(移動滑塊)

12.5.12Toplevel(頂層窗口)

12.5.13ttk(子模塊控件)

12.6對話框

12.6.1通用消息對話框

12.6.2文件對話框

12.6.3顏色選擇對話框

12.6.4通用對話框應用舉例

12.6.5簡單對話框

12.7菜單和工具欄

12.7.1創建主菜單

12.7.2創建上下文菜單

12.7.3菜單應用舉例

12.8基於wxPython的圖形用戶界面設計入門

12.8.1wxPython概述

12.8.2安裝wxPython庫

12.8.3wxPython應用程序的基本架構

12.8.4使用wxPython開發簡易文本編輯器

12.9習題

12.10上機實踐

12.11案例研究1: 簡易圖形用戶界面計算器

12.12案例研究2: 百度音樂批量下載器

第13章圖形繪制和數據可視化

13.1Python繪圖模塊概述

13.2Matplotlib模塊

13.2.1Matplotlib模塊概述

13.2.2圖形顯示: 用戶界面後端

13.2.3輸出格式: 硬拷貝後端

13.2.4Matplotlib的特點

13.2.5安裝Matplotlib

13.3Matplotlib基本繪圖

13.3.1繪制折線圖: 使用一個列表數據

13.3.2繪制折線圖: 使用兩個列表數據

13.3.3繪制多條曲線圖

13.3.4設置坐標軸範圍

13.3.5設置坐標軸標題和圖表標題

13.3.6設置圖例

13.3.7保存圖形到文件

13.3.8基本繪圖應用舉例

13.4常用圖表類型的繪制

13.4.1選擇圖表類型

13.4.2條形圖

13.4.3餅圖

13.4.4散點圖

13.4.5直方圖

13.5面向對象的Matplotlib繪圖

13.5.1面向對象的繪圖

13.5.2繪制多個子圖

13.6習題

13.7上機實踐

13.8案例研究: 漢諾塔問題求解動畫

第14章數值日期和時間處理

14.1相關模塊概述

14.1.1數值處理的相關模塊

14.1.2日期和時間處理的相關模塊

14.2cmath模塊和復數數學函數

14.3數值運算模塊NumPy

14.3.1數值運算模塊的基本使用

14.3.2創建數組

14.3.3處理數組

14.3.4數組應用舉例

14.4日期和時間處理

14.4.1相關術語

14.4.2時間對象

14.4.3測量程序運行時間

14.4.4日期對象

14.4.5獲取當前日期和時間

14.4.6日期和時間格式化為字符串

14.4.7日期和時間字符串解析為日期和時間對象

14.5綜合應用舉例

14.6習題

14.7上機實踐

14.8案例研究: 使用pandas進行數據分析和處理

第15章字符串和文本處理

15.1相關模塊概述

15.1.1字符串和文本處理的相關模塊

15.1.2字符串處理概述的常用方法

15.2正則表達式

15.2.1正則表達式語言概述

15.2.2正則表達式引擎

15.2.3普通字符和轉義字符

15.2.4字符類和預定義字符類

15.2.5邊界匹配符

15.2.6重復限定符

15.2.7匹配算法: 貪婪和懶惰

15.2.8選擇分支

15.2.9分組和向後引用

15.2.10正則表達式的匹配模式

15.2.11常用正則表達式

15.3正則表達式模塊re

15.3.1匹配和搜索函數

15.3.2匹配選項

15.3.3正則表達式對象

15.3.4匹配對象

15.3.5匹配和替換

15.3.6分隔字符串

15.4正則表達式應用舉例

15.4.1字符串包含驗證

15.4.2字符串查找和拆分

15.4.3字符串替換和清除

15.4.4字符串查找和截取

15.5中文分詞庫jieba

15.5.1安裝jieba庫

15.5.2jieba庫的分詞模式和常用函數

15.5.3使用jieba庫分析統計中文文檔

15.6詞雲庫Wordcloud

15.6.1安裝Wordcloud

15.6.2Wordcloud庫的API

15.6.3定製詞雲圖的繪制參數

15.6.4使用Wordcloud庫顯示中文詞雲圖

15.7綜合應用舉例

15.7.1文本統計

15.7.2基因預測

15.8習題

15.9上機實踐

15.10案例研究: NLTK與自然語言處理

第16章數據庫訪問

16.1數據庫基礎

16.1.1數據庫的概念

16.1.2數據庫模型

16.1.3關系數據庫

16.2Python數據庫訪問模塊

16.2.1通用數據庫訪問模塊

16.2.2專用數據庫訪問模塊

16.2.3SQLite數據庫和sqlite3模塊

16.3使用sqlite3模塊連接和操作SQLite數據庫

16.3.1訪問數據庫的典型步驟

16.3.2創建數據庫和表

16.3.3數據庫表的插入、更新和刪除操作

16.3.4數據庫表的查詢操作

16.4使用SQLiteStudio查看和維護SQLite數據庫

16.5習題

16.6上機實踐

16.7案例研究1: 基於數據庫和GUI的教務管理系統

16.8案例研究2: 基於MySQL的庫存管理系統

第17章網絡編程和通信

17.1網絡編程的基本概念

17.1.1網絡基礎知識

17.1.2TCP/IP協議簡介

17.1.3IP地址和域名

17.1.4統一資源定位器

17.2基於socket的網絡編程

17.2.1socket概述

17.2.2創建socket對象

17.2.3將服務器端socket綁定到指定地址上

17.2.4服務器端socket開始偵聽

17.2.5連接和接收連接

17.2.6發送和接收數據

17.2.7簡單TCP程序: Echo Server

17.2.8簡單UDP程序: Echo Server

17.2.9UDP程序: Quote Server

17.3基於urllib的網絡編程

17.3.1打開和讀取URL網絡資源

17.3.2創建Request對象

17.4基於http的網絡編程

17.5基於ftplib的網絡編程

17.6基於poplib和smtplib的網絡編程

17.6.1使用poplib接收郵件

17.6.2使用smtplib發送郵件

17.7習題

17.8上機實踐

17.9案例研究: 網絡爬蟲實現案例

第18章並行計算: 進程、線程和協程

18.1並行處理概述

18.1.1進程、線程和協程

18.1.2Python語言與並行處理相關模塊

18.2基於線程的並發處理

18.2.1threading模塊概述

18.2.2使用Thread對象創建線程

18.2.3自定義派生於Thread的對象

18.2.4線程加入

18.2.5用戶線程和daemon線程

18.2.6Timer線程

18.2.7基於原語鎖的簡單同步

18.2.8基於條件變量的同步和通信

18.2.9基於queue模塊中隊列的同步

18.2.10基於Event的同步和通信

18.3基於進程的並行計算

18.3.1multiprocessing模塊概述

18.3.2創建和使用進程

18.3.3進程的數據共享

18.3.4進程池

18.4基於線程池/進程池的並發和並行任務

18.4.1concurrent.futures模塊概述

18.4.2使用ThreadPoolExecutor並發執行任務

18.4.3使用ProcessPoolExecutor並發執行任務

18.5基於asyncio的異步IO編程

18.5.1asyncio模塊概述

18.5.2創建協程對象

18.5.3創建任務對象

18.6應用舉例

18.6.1使用Pool並行計算查找素數

18.6.2使用ProcessPoolExecutor並行判斷素數

18.6.3使用ThreadPoolExecutor多線程爬取網頁

18.7習題

18.8上機實踐

18.9案例研究: 文本統計並行處理

第19章系統管理

19.1系統管理相關模塊

19.2目錄、文件和磁盤的基本操作

19.2.1創建目錄

19.2.2臨時目錄和文件的創建

19.2.3切換和獲取當前工作目錄

19.2.4目錄內容列表

19.2.5文件通配符和glob.glob()函數

19.2.6遍歷目錄和os.walk()函數

19.2.7判斷文件/目錄是否存在

19.2.8測試文件類型

19.2.9文件的日期及大小

19.2.10文件和目錄的刪除

19.2.11文件和目錄的復制、重命名和移動

19.2.12磁盤的基本操作

19.3執行操作系統命令和運行其他程序

19.3.1os.system()函數

19.3.2os.popen()函數

19.3.3subprocess模塊

19.4獲取終端的大小

19.5文件的壓縮和解壓縮

19.5.1shutil模塊支持的壓縮和解壓縮格式

19.5.2make_archive()函數和文件壓縮

19.5.3unpack_archive()函數和文件解壓縮

19.6configparser模塊和配置文件

19.6.1INI文件及INI文件格式

19.6.2ConfigParser對象和INI文件操作

19.7應用舉例

19.7.1病毒掃描

19.7.2文件目錄樹

19.8習題

19.9上機實踐

19.10案例研究1: 簡易圖形用戶界面壓縮軟件

19.11案例研究2: 使用scikitlearn進行機器學習

附錄Python計算生態

參考文獻