Python程序設計與算法基礎教程 ( 簡體 字) |
作者:江紅、余青松 | 類別:1. -> 程式設計 -> Python |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 47366 詢問書籍請說出此書號!【缺書】 NT售價: 295 元 |
出版日:7/1/2017 |
頁數:398 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302466833 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: 程序設計是大專院校計算機、電子信息、工商管理等相關專業的必修課程。Python語言是一種解釋型、面向對象的計算機程序設計語言,廣泛用于計算機程序設計教學語言、系統管理編程腳本語言、科學計算等,特別適用于快速的應用程序開發。Python編程語言廣受開發者的喜愛,并被列入LAMP(Linux、Apache、MySQL以及Python/Perl/PHP),已經成為最受歡迎的程序設計語言之一。 本教程集教材、練習冊、上機指導于一體,基于Windows 10和Python 3.5.2構建Python開發平臺,通過大量的實例,由淺入深、循序漸進地闡述Python語言的基礎知識,以及使用Python語言的實際開發應用實例。具體內容包括:Python概述、Python語言基礎、程序流程控制、常用內置數據類型、系列數據類型、輸入和輸出、錯誤和異常處理、函數、類和對象、模塊和客戶端、算法與數據結構基礎、圖形用戶界面、圖形繪制、數值日期和時間處理、字符串和文本處理、文件、數據庫訪問、網絡和Web編程、多線程編程以及系統管理等。 本教程由華東師范大學江紅和余青松共同編寫。由于時間和編者學識有限,書中不足之處在所難免,敬請諸位同行、專家和讀者指正。 編 者 2017年3月 |
內容簡介:本教程集教材、練習冊、上機指導于一體,基于Windows 10和Python 3.5.2構建Python開發平臺,闡述Python語言的基礎知識,以及使用Python語言的實際開發應用實例,具體內容包括:Python概述、Python語言基礎、程序流程控制、常用內置數據類型、系列數據類型、輸入和輸出、錯誤和異常處理、函數、類和對象、模塊和客戶端、算法與數據結構基礎、圖形用戶界面、圖形繪制、數值日期和時間處理、字符串和文本處理、文件、數據庫訪問、網絡和Web編程、多線程編程以及系統管理等。 本教程作者結合多年的程序設計、系統開發以及授課經驗,由淺入深、循序漸進地介紹Python程序設計語言,讓讀者能夠較為系統全面地掌握程序設計的理論和應用。 本教程可以作為高等學校各專業的計算機程序設計教材,同時也可作為廣大程序設計開發者、愛好者的自學參考書。 |
目錄:第1章Python概述 1 1.1Python語言概述 1 1.1.1Python語言簡介 1 1.1.2Python語言的特點 1 1.1.3Python語言的應用范圍 2 1.2Python語言版本和開發環境 2 1.2.1Python語言的版本 2 1.2.2Python語言的實現 2 1.2.3Python語言的集成開發環境 3 1.3下載和安裝Python 3 1.3.1下載Python 3 1.3.2安裝Python 4 1.3.3安裝和管理Python擴展包 4 1.4使用Python解釋器解釋執行Python程序 6 1.4.1運行Python解釋器 6 1.4.2運行Python集成開發環境 7 1.5使用文本編輯器和命令行編寫和執行Python源文件程序 8 1.5.1編寫HelloWorld程序 9 1.5.2HelloWorld程序(hello.py)源代碼分析 10 1.5.3運行Python源代碼程序 10 1.5.4命令行參數 11 1.6使用集成開發環境IDLE編寫和執行Python源文件程序 12 1.6.1使用IDLE編寫程序 12 1.6.2使用IDLE編輯程序 13 1.7在線幫助和相關資源 13 1.7.1Python交互式幫助系統 13 1.7.2Python文檔 16 1.7.3Python官網 17 1.7.4Python擴展庫索引(PyPI) 17 復習題 18 上機實踐 19 第2章Python語言基礎 20 2.1Python程序概述 20 2.1.1引例 20 2.1.2Python程序構成 20 2.2Python對象和引用 21 2.2.1Python對象概述 21 2.2.2使用字面量創建實例對象 21 2.2.3使用類對象創建實例對象 22 2.2.4數據類型 22 2.2.5變量和對象的引用 22 2.2.6Python是動態類型語言 23 2.2.7Python是強類型語言 24 2.2.8對象內存示意圖 24 2.2.9對象的值比較(==)和引用判別(is) 25 2.2.10不可變對象(immutable)和可變對象(mutable) 25 2.3標識符及其命名規則 26 2.3.1標識符 26 2.3.2保留關鍵字 27 2.3.3Python預定義標識符 27 2.3.4命名規則 27 2.4變量和賦值語句 28 2.4.1變量的聲明和賦值 28 2.4.2鏈式賦值語句 28 2.4.3復合賦值語句 29 2.4.4刪除變量 29 2.4.5系列解包賦值 29 2.4.6常量 30 2.5表達式和運算符 30 2.5.1表達式的組成 30 2.5.2表達式的書寫規則 31 2.5.3運算符概述 31 2.5.4Python運算符及其優先級 31 2.6語句 32 2.6.1Python語句 32 2.6.2Python語句的書寫規則 33 2.6.3復合語句及其縮進書寫規則 33 2.6.4注釋語句 34 2.6.5空語句pass 34 2.7函數和模塊 34 2.7.1函數的創建和調用 34 2.7.2內置函數 35 2.7.3模塊函數 35 2.7.4函數API 36 2.8類和對象 36 2.8.1創建類對象 36 2.8.2實例對象的創建和調用 37 2.9模塊和包 37 復習題 37 上機實踐 39 第3章程序流程控制 41 3.1順序結構 41 3.2選擇結構 41 3.2.1分支結構的形式 42 3.2.2單分支結構 42 3.2.3雙分支結構 43 3.2.4多分支結構 44 3.2.5if語句的嵌套 45 3.2.6if語句典型示例代碼 46 3.2.7選擇結構綜合舉例 47 3.3循環結構 48 3.3.1可迭代對象 48 3.3.2range對象 49 3.3.3for循環 49 3.3.4while循環 50 3.3.5循環的嵌套 51 3.3.6break語句 52 3.3.7continue語句 53 3.3.8死循環(無限循環) 54 3.3.9else子句 55 3.3.10循環語句典型示例代碼 55 3.3.11循環結構綜合舉例 56 復習題 57 上機實踐 60 第4章常用內置數據類型 64 4.1Python內置數據類型概述 64 4.1.1數值數據類型 64 4.1.2序列數據類型 64 4.1.3集合數據類型 65 4.1.4字典數據類型 65 4.1.5NoneType、NotImplementedType和EllipsisType 65 4.1.6其他數據類型 65 4.2int數據類型(任意精度整數) 65 4.2.1整型字面量 66 4.2.2int對象 66 4.2.3int對象的方法 66 4.2.4整數的運算 67 4.3float類型(有限精度浮點數) 68 4.3.1浮點類型字面量 68 4.3.2float對象 68 4.3.3float對象的方法 68 4.3.4浮點數的運算 69 4.4complex類型(復數) 70 4.4.1復數類型字面量 70 4.4.2complex對象 70 4.4.3complex對象屬性和方法 70 4.4.4復數的運算 70 4.5bool數據類型(布爾邏輯值) 71 4.5.1布爾值字面量 71 4.5.2bool對象 71 4.5.3邏輯運算符 72 4.6str數據類型(字符串) 73 4.6.1字符串字面量 73 4.6.2字符串編碼 73 4.6.3轉義字符 73 4.6.4str對象 74 4.6.5str對象屬性和方法 74 4.6.6字符串的運算 75 4.6.7對象轉換為字符串 75 4.6.8字符串的格式化 75 4.7比較關系運算和條件表達式 76 4.7.1條件表達式 76 4.7.2關系和測試運算符 77 4.8算術運算符和位運算符 78 4.8.1算術運算符 78 4.8.2位運算符 78 4.9混合運算和數值類型轉換 79 4.9.1隱式轉換 79 4.9.2顯式轉換(強制轉換) 79 4.10內置標準數學函數 80 4.10.1內置數學運算函數 80 4.10.2數制轉換函數 80 復習題 81 上機實踐 84 第5章系列數據類型 89 5.1Python系列數據概述 89 5.1.1數組 89 5.1.2系列數據類型 89 5.2系列數據的基本操作 90 5.2.1系列的長度、最大值、最小值、求和 90 5.2.2系列的索引訪問操作 90 5.2.3系列的切片操作 91 5.2.4系列的連接和重復操作 92 5.2.5系列的成員關系操作 92 5.2.6系列的比較運算操作 93 5.2.7系列的排序操作 94 5.2.8內置函數all()和any() 94 5.2.9系列拆封 94 5.3元組 95 5.3.1使用元組字面量創建元組實例對象 95 5.3.2使用tuple對象創建元組實例對象 96 5.3.3元組的系列操作 96 5.4列表 96 5.4.1使用列表字面量創建列表實例對象 96 5.4.2使用list對象創建元組實例對象 97 5.4.3列表的系列操作 97 5.4.4list對象的方法 97 5.4.5列表解析表達式 98 5.5字符串 98 5.5.1字符串的系列操作 98 5.5.2字符串編碼 99 5.5.3字符串格式化 99 5.6字節系列 102 5.6.1bytes常量 102 5.6.2創建bytes對象 102 5.6.3創建bytearray對象 103 5.6.4bytes和bytearray的系列操作 103 5.6.5字節編碼和解碼 104 復習題 104 上機實踐 106 第6章輸入和輸出 108 6.1輸入和輸出概述 108 6.2命令行參數 108 6.2.1sys.argv與命令行參數 108 6.2.2argparse模塊和命令行參數解析 109 6.3標準輸入和標準輸出函數 110 6.3.1輸入和輸出函數 110 6.3.2交互式用戶輸入 111 6.3.3運行時提示輸入密碼 112 6.4文件和文件對象 112 6.4.1文件對象和open函數 112 6.4.2文件的打開、寫入、讀取和關閉 113 6.4.3with語句和上下文管理協議 113 6.5標準輸入、輸出和錯誤流 114 6.5.1標準輸入、輸出和錯誤流文件對象 114 6.5.2讀取任意長度的輸入流 115 6.5.3標準輸入、輸出和錯誤流重定向 115 6.6重定向和管道 116 6.6.1重定向標準輸出到一個文件 117 6.6.2重定向文件到標準輸入 117 6.6.3管道 118 6.6.4過濾器 119 復習題 121 上機實踐 121 第7章錯誤和異常處理 123 7.1程序的錯誤 123 7.1.1語法錯誤 123 7.1.2運行時錯誤 123 7.1.3邏輯錯誤 124 7.2異常處理 125 7.2.1異常處理概述 125 7.2.2內置的異常類 125 7.2.3引發異常 127 7.2.4捕獲處理異常機制概述 128 7.2.5Python虛擬機捕獲處理異常 128 7.2.6使用try…except…else…finally語句捕獲處理異常 128 7.2.7捕獲異常的順序 129 7.2.8finally塊和發生異常后的處理 130 7.2.9自定義異常類 130 7.3斷言處理 131 7.3.1斷言處理概述 131 7.3.2assert語句和AssertionError類 131 7.3.3啟用/禁用斷言 132 7.4程序的基本調試方法 132 7.4.1語法錯誤的調試 133 7.4.2運行時錯誤的調試 133 7.4.3邏輯錯誤的調試 134 復習題 134 上機實踐 135 第8章函數 137 8.1函數概述 137 8.1.1函數的基本概念 137 8.1.2函數的功能 137 8.1.3Python函數分類 137 8.2函數的聲明和調用 138 8.2.1函數對象的創建 138 8.2.2函數的調用 139 8.2.3作為對象的函數 140 8.2.4Lamda表達式和匿名函數 140 8.2.5函數的副作用 141 8.3參數的傳遞 141 8.3.1形式參數和實際參數 141 8.3.2形式參數變量和對象引用傳遞 142 8.3.3傳遞不可變對象的引用 142 8.3.4傳遞可變對象的引用 143 8.3.5可選參數 143 8.3.6位置參數和命名參數 144 8.3.7可變參數 145 8.3.8強制命名參數 145 8.3.9參數類型檢查 146 8.4函數的返回值 146 8.4.1return語句和函數返回值 146 8.4.2多條return語句 147 8.4.3返回多個值 148 8.5變量的作用域 148 8.5.1全局變量 148 8.5.2局部變量 149 8.5.3全局語句global 150 8.5.4非局部語句nonlocal 151 8.5.5類成員變量 151 8.5.6輸出局部變量和全局變量 151 8.6遞歸函數 152 8.6.1遞歸函數的定義 152 8.6.2遞歸函數的原理 153 8.6.3遞歸函數需要注意的問題 154 8.6.4遞歸函數的應用:最大公約數 154 8.6.5遞歸函數的應用:漢諾塔 155 8.7內置函數的使用 156 8.7.1內置函數一覽 156 8.7.2eval函數 156 8.7.3exec函數 157 8.7.4compile函數 157 復習題 157 上機實踐 159 第9章類和對象 161 9.1面向對象概念 161 9.1.1對象的定義 161 9.1.2封裝 161 9.1.3繼承 161 9.1.4多態性 161 9.2類對象和實例對象 162 9.2.1類對象 162 9.2.2實例對象 162 9.3屬性 163 9.3.1實例屬性 163 9.3.2類屬性 164 9.3.3私有屬性和公有屬性 164 9.3.4@property裝飾器 165 9.3.5特殊屬性 167 9.3.6自定義屬性 167 9.4方法 168 9.4.1實例方法 168 9.4.2靜態方法 169 9.4.3類方法 170 9.4.4__init__方法(構造函數)和__new__方法 171 9.4.5__del__方法(析構函數) 172 9.4.6私有方法與公有方法 173 9.4.7方法重載 173 9.5繼承 174 9.5.1派生類 174 9.5.2查看繼承的層次關系 175 9.5.3類成員的繼承和重寫 176 9.6對象的特殊方法 176 9.6.1對象的特殊方法概述 176 9.6.2運算符重載與對象的特殊方法 177 9.6.3@functools.total_ordering裝飾器 179 9.6.4__call__方法和可調用對象 179 9.7對象的引用、淺拷貝和深拷貝 180 9.7.1對象的引用 180 9.7.2對象的淺拷貝 180 9.7.3對象的深拷貝 181 復習題 181 上機實踐 183 第10章模塊和客戶端 185 10.1模塊化程序設計的概念 185 10.1.1模塊化程序設計 185 10.1.2模塊的API 185 10.1.3模塊的實現 186 10.1.4模塊的客戶端 187 10.1.5模塊化程序設計的優越性 187 10.2模塊的設計和實現 188 10.2.1模塊設計的一般原則 188 10.2.2API設計 188 10.2.3創建模塊 188 10.2.4模塊的私有函數 189 10.2.5模塊的測試代碼 190 10.2.6編寫模塊文檔字符串 191 10.2.7按字節編譯的.pyc文件 192 10.3模塊的導入和使用 192 10.3.1導入模塊和使用模塊 192 10.3.2導入模塊中的成員 192 10.3.3重新加載模塊 193 10.3.4動態代入模塊 193 10.4包 194 10.4.1包的概念 194 10.4.2創建包 194 10.4.3包的導入和使用 195 10.5模塊的導入順序 195 10.5.1導入模塊時的搜索順序 195 10.5.2模塊搜索路徑sys.path 196 10.5.3dir()內置函數 197 10.6命名空間與名稱查找順序 198 復習題 198 上機實踐 199 第11章算法與數據結構基礎 200 11.1算法及其性能分析 200 11.1.1算法概述 200 11.1.2算法的時間復雜度分析 200 11.1.3增長量級 201 11.1.4算法的空間復雜度分析 202 11.2查找算法 202 11.2.1順序查找法 202 11.2.2二分查找法 204 11.2.3Python語言提供的查找算法 205 11.3排序算法 205 11.3.1冒泡排序法 205 11.3.2選擇排序法 206 11.3.3插入排序法 207 11.3.4歸并排序法 208 11.3.5快速排序法 210 11.3.6Python語言提供的排序算法 211 11.4常用數據結構 211 11.4.1數據結構概述 211 11.4.2常用的數據結構概述 212 11.4.3Python的collections模塊 212 11.5數組 213 11.5.1列表和數組 213 11.5.2array.array對象和數組 213 11.6棧和隊列 214 11.6.1棧的實現:使用列表 214 11.6.2deque對象 215 11.6.3deque作為棧 216 11.6.4deque作為隊列 216 11.7集合 217 11.7.1集合的定義 217 11.7.2判斷集合元素是否存在 217 11.7.3集合的運算:并集、交集、差集和對稱差集 218 11.7.4集合的比較運算:相等、子集和超集 218 11.7.5集合的長度、最大值、最小值、元素和 219 11.7.6可變集合的方法 219 11.8字典(映射) 220 11.8.1對象的哈希值 220 11.8.2字典的定義 220 11.8.3字典的訪問操作 221 11.8.4字典的視圖對象 221 11.8.5判斷字典鍵是否存在 221 11.8.6字典對象的長度和比較 221 11.8.7字典對象的方法 222 11.8.8defaultdict對象 222 11.8.9OrderedDict對象 223 11.8.10ChainMap對象 223 11.8.11Counter對象 224 11.9collections模塊的其他數據結構 226 11.9.1namedtuple對象 226 11.9.2UserDict、UserList和UserString對象 227 復習題 227 上機實踐 230 第12章圖形用戶界面 233 12.1圖形用戶界面概述 233 12.1.1tkinter 233 12.1.2其他GUI庫簡介 233 12.2tkinter概述 234 12.2.1tkinter模塊 234 12.2.2圖形用戶界面構成 234 12.2.3框架和GUI應用程序類 235 12.2.4tkinter主窗口 236 12.3幾何布局管理器 236 12.3.1pack幾何布局管理器 237 12.3.2grid幾何布局管理器 237 12.3.3place幾何布局管理器 239 12.4事件處理 240 12.4.1事件類型 240 12.4.2事件綁定 240 12.4.3事件處理函數 241 12.5常用組件 242 12.5.1Label 242 12.5.2LabelFrame 242 12.5.3Button 243 12.5.4Message 244 12.5.5Entry 245 12.5.6Text 245 12.5.7Radiobutton 247 12.5.8Checkbutton 247 12.5.9Listbox 250 12.5.10OptionMenu 251 12.5.11Scale 253 12.5.12Toplevel 254 12.5.13ttk子模塊控件 254 12.6對話框 255 12.6.1通用消息對話框 255 12.6.2文件對話框 256 12.6.3顏色選擇對話框 257 12.6.4通用對話框應用舉例 258 12.6.5簡單對話框 259 12.7菜單和工具欄 260 12.7.1創建主菜單 260 12.7.2創建上下文菜單 262 12.7.3菜單應用舉例 263 復習題 265 上機實踐 266 第13章圖形繪制 268 13.1Python繪圖模塊概述 268 13.2基于tkinter的圖形繪制 269 13.2.1基于tkinter畫布繪圖概述 269 13.2.2創建畫布對象 269 13.2.3繪制矩形 270 13.2.4繪制橢圓 270 13.2.5繪制圓弧 271 13.2.6繪制線條 271 13.2.7繪制多邊形 272 13.2.8繪制字符串 273 13.2.9應用舉例:函數圖形 273 13.3基于turtle模塊的海龜繪圖 274 13.3.1海龜繪圖概述 274 13.3.2turtle模塊概述 274 13.3.3繪制正方形 275 13.3.4繪制多邊形 275 13.3.5繪制圓形螺旋 276 13.3.6遞歸圖形 277 13.3.7海龜繪圖的應用實例 278 13.4基于Matplotlib模塊的繪圖 279 13.4.1Matplotlib模塊概述 279 13.4.2安裝Matplotlib模塊 279 13.4.3使用Matplotlib模塊繪圖概述 280 13.4.4繪制函數曲線 280 13.4.5繪制多個圖形 281 13.4.6繪制直方圖 282 復習題 283 上機實踐 284 第14章數值日期和時間處理 286 14.1相關模塊概述 286 14.1.1數值處理的相關模塊 286 14.1.2日期和時間處理的相關模塊 286 14.2math模塊和數學函數 286 14.2.1math模塊的API 286 14.2.2math模塊應用舉例 289 14.3cmath模塊和復數數學函數 290 14.4random模塊和隨機函數 291 14.4.1種子和隨機狀態 291 14.4.2隨機整數 292 14.4.3隨機系列 293 14.5數值運算模塊NumPy 293 14.5.1數值運算模塊的基本使用 293 14.5.2創建數組 294 14.5.3處理數組 295 14.5.4數組應用舉例 295 14.6日期和時間處理 295 14.6.1相關術語 295 14.6.2時間對象 296 14.6.3測量程序運行時間 296 14.6.4日期對象 297 14.6.5獲取當前日期時間 297 14.6.6日期時間格式化為字符串 298 14.6.7日期時間字符串解析為日期時間對象 298 復習題 299 上機實踐 300 第15章字符串和文本處理 303 15.1相關模塊概述 303 15.1.1字符串和文本處理的相關模塊 303 15.1.2字符串處理概述的常用方法 303 15.2字符串處理的常用操作 303 15.2.1字符串的類型判斷 303 15.2.2字符串大小寫轉換 304 15.2.3字符串的填充、空白和對齊 304 15.2.4字符串的測試、查找和替換 305 15.2.5字符串的拆分和組合 305 15.2.6字符串的翻譯和轉換 306 15.2.7字符串應用舉例 306 15.3正則表達式 307 15.3.1正則表達式語言概述 307 15.3.2正則表達式引擎 308 15.3.3普通字符和轉義字符 308 15.3.4字符類和預定義字符類 309 15.3.5邊界匹配符 309 15.3.6重復限定符 310 15.3.7匹配算法:貪婪和懶惰 310 15.3.8選擇分支 311 15.3.9分組和向后引用 311 15.3.10正則表達式的匹配模式 313 15.3.11常用正則表達式 313 15.4正則表達式模塊re 313 15.4.1匹配和搜索函數 313 15.4.2匹配選項 314 15.4.3正則表達式對象 314 15.4.4匹配對象 315 15.4.5匹配和替換 316 15.4.6分割字符串 316 15.5正則表達式應用舉例 316 15.5.1字符串包含驗證 316 15.5.2字符串查找和拆分 317 15.5.3字符串替換和清除 318 15.5.4字符串查找和截取 318 復習題 319 上機實踐 320 第16章文件 322 16.1文件操作相關模塊概述 322 16.2文本文件的讀取和寫入 322 16.2.1文本文件的寫入 322 16.2.2文本文件的讀取 323 16.2.3文本文件的編碼 324 16.3二進制文件的讀取和寫入 325 16.3.1二進制文件的寫入 325 16.3.2二進制文件的讀取 326 16.4隨機文件訪問 326 16.5內存文件的操作 328 16.5.1StringIO和內存文本文件操作 328 16.5.2BytesIO和內存文本文件操作 328 16.6文件的壓縮和解壓縮 329 16.7CSV文件格式的讀取和寫入 329 16.7.1csv.reader對象和csv文件的讀取 330 16.7.2csv.writer對象和csv文件的寫入 330 16.7.3csv.DictReader對象和csv文件的讀取 331 16.7.4csv.DictWriter對象和csv文件的寫入 332 16.7.5csv文件格式化參數和Dialect對象 332 16.8os模塊和文件訪問 334 16.8.1文件描述符 334 16.8.2使用os模塊提供的函數訪問文件 334 16.9輸入重定向和管道 335 16.9.1FileInput對象 335 16.9.2fileinput模塊的函數 336 16.9.3輸入重定向 337 16.10對象系列化 338 16.10.1對象系列化概念 338 16.10.2pickle模塊和對象系列化 338 復習題 339 上機實踐 340 第17章數據庫訪問 341 17.1數據庫基礎 341 17.1.1數據庫概念 341 17.1.2關系數據庫 341 17.2Python數據庫訪問模塊 342 17.2.1通用數據庫訪問模塊 342 17.2.2專用數據庫訪問模塊 343 17.2.3SQLite數據庫和sqlite3模塊 343 17.3使用sqlite3模塊連接和操作SQLite數據庫 344 17.3.1訪問數據庫的典型步驟 344 17.3.2創建數據庫和表 346 17.3.3數據庫表的插入、更新和刪除操作 346 17.3.4數據庫表的查詢操作 347 復習題 347 上機實踐 348 第18章網絡編程和通信 349 18.1網絡編程的基本概念 349 18.1.1網絡基礎知識 349 18.1.2TCP/IP簡介 349 18.1.3IP地址和域名 350 18.1.4統一資源定位器URL 351 18.2基于socket的網絡編程 352 18.2.1socket概述 352 18.2.2創建socket對象 353 18.2.3將服務器端socket綁定到指定地址上 353 18.2.4服務器端socket開始偵聽 354 18.2.5連接和接收連接 355 18.2.6發送和接收數據 355 18.2.7簡單TCP程序:EchoServer 355 18.2.8簡單UDP程序:EchoServer 357 18.2.9UDP程序:QuoteServer 358 18.3基于urllib的網絡編程 359 18.3.1打開和讀取URL網絡資源 359 18.3.2創建Request對象 359 18.4基于http的網絡編程 360 18.5基于ftplib的網絡編程 360 18.5.1創建FTP對象 361 18.5.2創建FTP_TLS對象 362 18.6基于poplib和smtplib的網絡編程 363 18.6.1使用poplib接收郵件 363 18.6.2使用smtplib發送郵件 363 復習題 364 上機實踐 365 第19章多線程編程 367 19.1線程處理概述 367 19.1.1進程和線程 367 19.1.2線程的優缺點 367 19.2創建和啟動多線程 368 19.2.1使用start_new_thread函數創建線程 368 19.2.2使用Thread對象創建線程 368 19.2.3自定義派生于Thread的對象 370 19.2.4線程加入join() 370 19.2.5用戶線程和daemon線程 371 19.3線程同步 373 19.3.1線程同步處理 373 19.3.2基于原語鎖(Lock/RLock對象)的簡單同步 373 19.3.3基于條件變量(Condition對象)的同步和通信 375 復習題 377 上機實踐 378
第20章系統管理 379 20.1系統管理相關模塊 379 20.2目錄、文件和磁盤的基本操作 379 20.2.1創建目錄 379 20.2.2臨時目錄和文件的創建 379 20.2.3切換當前工作目錄 380 20.2.4目錄內容列表 380 20.2.5文件通配符和glob.glob函數 380 20.2.6遍歷目錄和os.walk函數 381 20.2.7判斷文件/目錄是否存在 381 20.2.8測試文件類型 382 20.2.9文件的日期及其大小 382 20.2.10文件和目錄的刪除 382 20.2.11文件和目錄復制、重命名和移動 383 20.2.12磁盤的基本操作 383 20.3執行操作系統命令和運行其他程序 383 20.3.1os.system函數 383 20.3.2os.popen函數 384 20.3.3subprocess模塊 384 20.4獲取終端的大小 385 20.5文件壓縮和解壓縮 386 20.5.1shutil模塊支持的壓縮和解壓縮格式 386 20.5.2make_archive()和文件壓縮 386 20.5.3unpack_archive()函數和文件解壓縮 387 20.6configparser模塊和配置文件 387 20.6.1INI文件及INI文件格式 387 20.6.2ConfigParser對象和INI文件操作 388 復習題 389 上機實踐 390 附錄復習題參考答案 391 參考文獻 400
|
序: |