寫給程序員的Python教程
作 者: [挪]羅伯特·斯莫爾希雷(Robert Smallshire)[美]奧斯汀·賓阨姆(Austin Bingham) 著 阿信 譯
定 價: 79
出?版?社: 人民郵電出版社
出版日期: 2020年07月01日
頁 數: 291
裝 幀: 平裝
ISBN: 9787115505385
●第 1章 入門 1 1.1 獲取並安裝Python 3 1 1.1.1 Windows 2 1.1.2 macOS 3 1.1.3 Linux 4 1.2 啟動Python命令行REPL 5 1.3 退出REPL 6 1.3.1 Windows 7 1.3.2 UNIX 7 1.4 代碼結構和縮進語法 7 1.5 Python文化 10 1.6 導入標準庫模塊 12 1.7 獲取幫助 12 1.7.1 使用math. facto- rial()進行水果計數 14 1.7.2 不同的數字類型 15 1.8 標量數據類型:整數、浮點數、None以及bool 16 1.8.1 int 16 1.8.2 float 18 1.8.3 None 19 1.8.4 bool 19 1.9 關繫運算符 21 1.10 控制流:if語句和while循環 22 1.10.1 條件控制流:if語句 22 1.10.2 if…else語句 23 1.10.3 if…elif…else語句 23 1.10.4 有條件的重復:while語句 24 1.11 小結 27 第 2章 字符串與集合類型 29 2.1 str——不可變的Unicode碼位序列 29 2.2 禪之刻 31 2.2.1 相鄰字符串的拼接 31 2.2.2 多行字符串與換行 32 2.2.3 原始字符串 33 2.2.4 字符串也是序列 34 2.2.5 字符串方法 35 2.3 使用Unicode的字符串 37 2.4 bytes ——不可變的字節序列 37 2.4.1 字節字面量 38 2.4.2 bytes與str的相互轉換 38 2.5 list ——對像序列 41 2.6 dict類型——鍵關聯值 42 2.7 for循環——迭代 43 2.8 融會貫通 44 2.9 小結 47 第3章 模塊化 50 3.1 在一個.py文件中組織代碼 50 3.1.1 從操作繫統shell運行Python程序 51 3.1.2 將模塊導入到REPL中 52 3.2 定義函數 53 3.3 將模塊組織成函數 54 3.4 Python執行模型 57 3.5 創建帶有命令行參數的主函數 58 3.6 禪之刻 63 3.7 docstrings 64 3.8 注釋 67 3.9 Shebang 67 3.9.1 Linux和Mac上可執行的Python程序 68 3.9.2 Windows上可執行的Python程序 68 3.10 小結 69 第4章 內置類型和對像模型 71 4.1 Python對像引用的本質 71 4.1.1 引用重賦值 72 4.1.2 將一個引用賦值給另一個引用 72 4.1.3 探索值並使用id()獲取標識 73 4.1.4 使用is測試標識的相等性 74 4.1.5 無改變的變動 74 4.1.6 引用可變對像 75 4.1.7 值相等(等值)與標識相等 76 4.2 參數傳遞語義——通過對像引用 77 4.2.1 在函數中修改外部對像 77 4.2.2 在函數中綁定新對像 78 4.2.3 參數傳遞是引用綁定 79 4.3 Python的return語義 80 4.4 函數參數詳解 81 4.4.1 默認參數值 81 4.4.2 關鍵字參數 82 4.4.3 何時對默認參數進行求值 82 4.5 Python的類型繫統 85 4.5.1 Python中的動態類型 85 4.5.2 Python中的強類型 86 4.6 變量聲明和作用域 86 4.7 作用域實戰 87 4.7.1 全局作用域和局部作用域中的標識名稱 88 4.7.2 global關鍵詞 89 4.8 禪之刻 90 4.9 一切皆對像 90 4.10 小結 92 第5章 探究內置集合類型 95 5.1 tuple——不可變的對像序列 96 5.1組字面量 96 5.1.2素 96 5.1組的長度 96 5.1.4組 96 5.1.5 連接組 97 5.1.組 97 5.1.組 98 5.1.8 可選的括號 98 5.1.9 返回組 98 5.1.10組拆包交換變量 99 5組構造函數 99 5.3 字符串實戰 100 5.3.1 字符串的長度 100 5.3.2 連接字符串 101 5.3.3 拼接字符串 101 5.3.4 拆分字符串 102 5.4 禪之刻 102 5.4.1 分割字符串 103 5.4.2 字符串格式化 103 5.4.3 其他字符串方法 104 5.5 range——等間隔的整數集合 105 5.5.1 起始值 105 5.5.2 步長參數 106 5.5.3 不使用區間:enumerate() 107 5.6 列表實戰 108 5.6.1 列表的負數索引(其他序列同理) 108 5.6.2 列表切片 109 5.6.3 復制列表 112 5.6.4 淺復制 113 5.6.5 重復列表 117 5.6.6 使用index()查素 118 5.6.7 使用count()和in進行成員資格測試 119 5.6.8 使用del按照索引刪素 119 5.6.9 使用remove()按照值刪素 120 5.6.10 向列表素 120 5.6.11 連接列表 120 5.6.12 重素 121 5.6.13 異地重排 122 5.7 字典 123 5.7.1 復制字典 124 5.7.2 更新字典 125 5.7.3 迭代字典的鍵 125 5.7.4 迭代字典的值 126 5.7.5 迭代鍵值對 127 5.7.6 字典鍵的成員資格測試 127 5.7.7 刪除字典的項目 128 5.7.8 字典的可變性 128 5.7.9 美化輸出 129 5.8 集——包素的無序集合 129 5.8.1 set構造函數 130 5.8.2 迭代集 131 5.8.3 集的成員資格測試 131 5.8.4 向集素 131 5.8.5 從集素 132 5.8.6 復制集 133 5.8.7 集的代數運算 133 5.8.8 並集 134 5.8.9 補集 134 5.9 集合協議 136 5.9.1 容器協議 137 5.9.2 大小協議 137 5.9.3 可迭代協議 137 5.9.4 序列協議 137 5.9.5 其他協議 138 5.10 小結 138 第6章 異常 140 6.1 異常與控制流程 140 6.2 處理多異常 143 6.3 程序員的錯誤 145 6.4 空代碼塊——pass語句 146 6.5 異常對像 146 6.6 不明智的返回碼 147 6.7 重拋異常 148 6.8 異常是函數API的一部分 149 6.8.1 Python拋出的異常 150 6.8.2 捕獲異常 151 6.8.3 明確地拋出異常 152 6.9 守衛子句 153 6.10 異常、API以及協議 155 6.10.1 IndexError 155 6.10.2 ValueError 156 6.10.3 KeyError 156 6.11 不使用守衛子句處理TpyeError 156 6.12 Pythonic風格——EAFP與LBYL 157 6.13 清理操作 159 6.14 禪之刻 160 6.15 平臺特定的代碼 161 6.16 小結 162 第7章 推導、可迭代與生成器 164 7.1 推導 164 7.1.1 列表推導 165 7.1.2 集推導 166 7.1.3 字典推導 166 7.1.4 過濾推導 168 7.2 禪之刻 169 7.3 迭代協議 170 7.3.1 迭代協議實例 170 7.3.2 更好的迭代實例 171 7.4 生成器函數 172 7.4.1 yield關鍵字 172 7.4.2 生成器是迭代器 173 7.4.3 生成器代碼何時執行 174 7.4.4 管理生成器的顯式狀態 176 7.4.5 惰性與無限 178 7.5 生成器表達式 180 7.5.1 生成器對像隻運行一次 180 7.5.2 低內存消耗的迭代器 181 7.5.3 可選的括號 181 7.5.4 在生成器表達式中使用if子句 181 7.6 內置的迭代工具 181 7.6.1 itertools簡介 182 7.6.2 布爾序列 183 7.6.3 使用zip合並序列 183 7.6.4 使用chain()進行序列惰性連接 185 7.7 融會貫通 185 7.8 小結 186 7.8.1 生成器 187 7.8.2 迭代工具 187 第8章 使用類定義新類型 188 8.1 定義類 189 8.2 實例方法 190 8.3 實例初始化方法 191 8.4 校驗與不變式 192 8.5 增加第二個類 194 8.6 協同類 196 8.7 禪之刻 197 8.8 定座位 197 8.9 以實現細節命名方法 204 8.9.1 實現relocate_ passenger() 206 8.9.2 計數可用座位 208 8.10 有時你可能隻需要函數對像 208 8.11 多態與鴨子類型 211 8.12 繼承與實現共享 215 8.12.1 一個飛機基類 215 8.12.2 繼承Aircraft 216 8.12.3 將公共功能提升到基類中 217 8.13 小結 218 第9章 文件和資源管理 221 9.1 文件 221 9.1.1 二進制和文件模式 222 9.1.2 編碼的重要性 222 9.1.3 以寫入模式打開文件 223 9.1.4 寫入文件 224 9.1.5 關閉文件 225 9.1.6 Python之外的文件知識 225 9.1.7 讀取文件 226 9.1.8 向文件追加內容 228 9.1.9 文件對像作為迭代器 228 9.2 上下文管理器 230 9.2.1 使用finally管理資源 232 9.2.2 with代碼塊 233 9.3 禪之刻 234 9.4 二進制文件 235 9.4.1 BMP文件格式 235 9.4.2 位操作符 240 9.4.3 寫BMP文件 240 9.5 類文件對像 244 9.5.1 你已經見過類文件對像 244 9.5.2 使用類文件對像 244 9.6 其他資源 245 9.7 小結 248 第 10章 使用Python庫測試 250 10.1 測試用例 250 10.2 固件 251 10.3 斷言 251 10.測試示例:文本分析 251 10.4.1 運行初始化測試 253 10.4.2 讓測試通過 253 10.5 用固件創建臨時文件 254 10.6 使用新固件 255 10.7 使用斷言測試行為 256 10.7.1 計數行數 257 10.7.2 計數字符數 258 10.8 測試異常 260 10.9 測試文件存在性 261 10.10 禪之刻 262 10.11 小結 262 第 11章 使用PDB進行調試 264 11.1 調試命令 265 11.2 調試回文程序 266 11.2.1 使用PDB找Bug 268 11.2.2 使用抽樣找到無限循環 269 11.2.3 設置顯式的斷點 270 11.2.4 跳過執行 272 11.2.5 修復BUG 274 11.3 小結 275 附錄A 虛擬環境 277 附錄B 打包與分發 280 附錄C 安裝第三方包 288 後記——剛剛開始 292
內容簡介
Python語言具有免費開源、簡單易學、可移植性和解釋性強、可擴展可嵌入等優點,在靠前外都得到了廣泛的應用。 本書基於Python 3的版本進行講解。本書共有11章,由淺入深地講解了Python的相關知識。本書從Python的安裝開始講起,對數據類型、函數、內置類型、集合類型、異常、生成器、文件和資源管測試等重要知識進行了繫統化的講解。
[挪]羅伯特·斯莫爾希雷(Robert Smallshire)[美]奧斯汀·賓阨姆(Austin Bingham) 著 阿信 譯
Robert Smallshire是Sixty North的創始人之一。Sixty North是挪威的一家軟件咨詢和培訓公司,該公司服務於整個歐洲,並且該公司主要使用Python工作。Robert從事不錯架構和技術管理方面的工作,曾為多家軟件公司提供能源領域的工具。他對很好科學和企業級軟件有著深刻的理解,並且在這些領域設計、倡導並實現了高效的軟件架構,他主要使用Python、C++、C#、F#以及JavaScript。Robert經常在技術大會、聚會和企業軟件活動中發表演講,而且主題多種多樣,主要有軟件開發中的行為微觀經濟學和在8位微控制器上實現Web服務等。他是奧斯陸Python小組的組織者......
"