Python 編程入門與實戰, 3/e
[意]法布里奇奧·羅馬諾(Fabrizio Romano)[英]海因里希·克魯格(Heinrich Kruger)
- 出版商: 人民郵電
- 出版日期: 2023-08-01
- 定價: $779
- 售價: 8.5 折 $662
- 語言: 簡體中文
- 頁數: 379
- ISBN: 7115607389
- ISBN-13: 9787115607386
-
相關分類:
Python
- 此書翻譯自: Learn Python Programming : An in-depth introduction to the fundamentals of Python, 3/e (Paperback)
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$354$336 -
$520$406 -
$480$379 -
$320$288 -
$356零起步玩轉 Mind + 創客教程 — 基於 micro:bit 開發板
-
$680$537 -
$250$198 -
$630$498 -
$414$393 -
$510與 AI 對話:ChatGPT 提示工程揭秘
-
$650$507 -
$403AI 視覺藝術 Midjourney 創作從入門到應用
-
$458Scratch 編程從入門到精通, 2/e
-
$414$393 -
$414$393 -
$750$593 -
$556大規模語言模型:從理論到實踐
-
$820$648 -
$653ReactJS 實踐入門
-
$356Python數據科學實戰
-
$403碼上行動:用 ChatGPT 學會 Python 編程巧用 ChatGPT 快速搞定 Python
-
$602大語言模型應用指南:以ChatGPT為起點,從入門到精通的AI實踐教程(全彩)
-
$780$702 -
$505OpenAI API接口應用實戰
-
$862基礎統計學, 14/e (雙色)
相關主題
商品描述
本書是一本系統介紹Python編程,並針對多個應用場景給出解決方案的編程手冊。
從Python的基礎知識開始,介紹了數據類型、函數、條件、循環等基本概念,展示了生成器、面向對象編程等具有Python特色的進階理念,並給出了定位和排除異常、測試代碼、調試的方法。
隨後,本書針對GUI、數據科學等實用場景,使用Python解決實際問題。
最後,本書給出了發布Python程序的方法。 本書適合想要學習編程或有一定編程基礎、想要學習Python的人閱讀。
作者簡介
Fabrizio Romano于1975年出生于意大利。他获得了帕多瓦大学计算机科学工程的硕士学位。他从1999年开始就成为一名专业的软件开发人员。Fabrizio自2016年起成为Sohonet的产品小组的成员。
Heinrich Kruger于1981年出生于南非。他获得了荷兰乌德勒支大学的计算机科学硕士学位。他从2014年开始成为一名专业的软件开发人员,并从2017年开始加入Sohonet的产品小组,成为Fabrizio的同事。
目錄大綱
第 1章 Python概述 1
1.1 編程預備知識 2
1.2 走近Python 3
1.3 關於Python 4
可移植性 4
一致性 4
開發人員的效率 4
廣泛的程序庫 5
軟件質量 5
軟件集成 5
滿足感和樂趣 5
1.4 Python有什麽缺點嗎? 5
1.5 當前的Python用戶 6
1.6 安裝環境 6
1.6.1 Python 2和Python 3 6
1.7 安裝Python 7
1.7.1 安裝Python解釋器 7
1.7.2 關於虛擬環境 9
1.7.3 第 一個虛擬環境 10
1.7.4 安裝第三方程序庫 12
1.7.5 控制台是我們的好幫手 13
1.8 怎樣運行Python程序 13
1.8.1 運行Python腳本 13
1.8.2 在交互式shell中運行Python 14
1.8.3 以服務的形式運行Python 15
1.8.4 以GUI應用程序的形式運行Python 15
1.9 Python代碼的組織形式 16
1.9.1 使用模塊和程序包 17
1.10 Python的執行模型 18
1.10.1 名稱和名字空間 19
1.10.2 作用域 20
1.10.3 對象和類 23
1.11 編寫優質代碼的指導原則 25
1.12 Python的文化 26
1.13 關於IDE的說明 27
1.14 總結 28
第 2章 內置的數據類型 29
2.1 一切皆是對象 29
2.2 可變還是不可變?這個是
問題 30
2.3 數值 32
2.3.1 整數 32
2.3.2 布爾值 34
2.3.3 實數 35
2.3.4 復數 36
2.3.5 分數和小數 36
2.4 不可變序列 37
2.4.1 字符串和bytes(字節) 37
2.4.2 元組 41
2.5 可變序列 42
2.5.1 列表 42
2.5.2 bytearray(字節數組) 45
2.6 集合類型 46
2.7 映射類型—字典 48
2.8 數據類型 51
2.8.1 日期和時間 52
2.8.2 collections模塊 56
2.9 枚舉 60
2.10 最後的考慮 60
2.10.1 小值緩存 61
2.10.2 如何選擇數據結構 61
2.10.3 關於索引和截取 62
2.10.4 關於名稱 63
2.11 總結 64
第3章 迭代和決策 65
3.1 條件編程 65
3.1.1 一種特殊的else:elif 66
3.1.2 三元操作符 68
3.2 循環 69
3.2.1 for循環 69
3.2.2 迭代器和可迭代對象 71
3.2.3 對多個序列進行迭代 72
3.2.4 while循環 74
3.2.5 break和continue語句 76
3.2.6 一種特殊的else子句 77
3.3 賦值表達式 79
3.3.1 語句和表達式 79
3.3.2 使用海象操作符 80
3.3.3 告誡 81
3.4 綜合應用 81
3.4.1 質數生成器 81
3.4.2 應用折扣 83
3.5 itertools模塊速覽 86
3.5.1 無限迭代器 86
3.5.2 終止於最短輸入序列的
迭代器 86
3.5.3 組合迭代器 87
3.6 總結 88
第4章 函數,代碼的基本構件 89
4.1 為什麽要使用函數? 90
4.1.1 減少代碼的重復 90
4.1.2 分割復雜任務 91
4.1.3 隱藏實現細節 91
4.1.4 提高可讀性 92
4.1.5 提高可追蹤性 92
4.2 作用域和名稱解析 93
4.2.1 global和nonlocal語句 95
4.3 輸入參數 96
4.3.1 實際參數的傳遞 97
4.3.2 形式參數名稱的賦值 97
4.3.3 修改可變對象 98
4.3.4 傳遞實際參數 99
4.3.5 定義形式參數 101
4.4 返回值 109
4.4.1 返回多個值 110
4.5 一些實用的提示 111
4.6 遞歸函數 112
4.7 匿名函數 113
4.8 函數的屬性 114
4.9 內置函數 115
4.10 代碼的文檔和註釋 115
4.11 導入對象 116
4.11.1 相對導入 117
4.12 最後一個例子 118
4.13 總結 119
第5章 解析和生成器 120
5.1 map、zip、filter函數 121
5.1.1 map 121
5.1.2 zip 124
5.1.3 filter 125
5.2 解析 125
5.2.1 嵌套的解析 126
5.2.2 對解析進行過濾 127
5.2.3 字典解析 129
5.2.4 集合解析 130
5.3 生成器 130
5.3.1 生成器函數 130
5.3.2 next的幕後 133
5.3.3 yield from表達式 135
5.3.4 生成器表達式 136
5.4 性能上的考慮 138
5.5 不要過度使用解析和生成器 141
5.6 名稱局部化 143
5.7 內置的生成行為 144
5.8 最後一個例子 145
5.9 總結 146
第6章 面向對象編程、裝飾器和
迭代器 148
6.1 裝飾器 148
6.1.1 裝飾器工廠 153
6.2 面向對象編程(OOP) 155
6.2.1 最簡單的Python類 155
6.2.2 類和對象的名字空間 156
6.2.3 屬性屏蔽 157
6.2.4 使用self變量 158
6.2.5 實例的初始化 159
6.2.6 OOP與代碼復用有關 159
6.2.7 訪問基類 164
6.2.8 多重繼承 165
6.2.9 類方法和靜態方法 169
6.2.10 私有方法和名稱改寫 173
6.2.11 property裝飾器 175
6.2.12 cached_property裝飾器 176
6.2.13 操作符重載 178
6.2.14 多態——簡單說明 178
6.2.15 數據類 179
6.3 編寫自定義的迭代器 180
6.4 總結 181
第7章 異常和上下文管理器 182
7.1 異常 182
7.1.1 觸發異常 184
7.1.2 自定義異常類 184
7.1.3 回溯 184
7.1.4 處理異常 185
7.1.5 不僅僅用於錯誤 188
7.2 上下文管理器 189
7.2.1 基於類的上下文管理器 191
7.2.2 基於生成器的上下文
管理器 192
7.3 總結 194
第8章 文件和數據持久化 195
8.1 操作文件和目錄 195
8.1.1 打開文件 196
8.1.2 讀取和寫入文件 197
8.1.3 檢查文件和目錄是否存在 199
8.1.4 對文件和目錄進行操作 200
8.1.5 臨時文件和臨時目錄 202
8.1.6 目錄的內容 203
8.1.7 文件和目錄的壓縮 204
8.2 數據交換格式 204
8.2.1 使用JSON 205
8.3 I/O、流和請求 211
8.3.2 創建HTTP請求 212
8.4 對磁盤上的數據進行持久化 214
8.4.1 使用pickle對數據進行
序列化 214
8.4.2 使用shelve保存數據 216
8.4.3 把數據保存到數據庫 217
8.5 總結 222
第9章 加密與令牌 223
9.1 加密的需要 223
9.1.1 加密的實用指導原則 224
9.2 Hashlib模塊 224
9.3 HMAC模塊 226
9.4 secrets模塊 227
9.4.1 隨機數 227
9.4.2 令牌的生成 228
9.4.3 摘要的比較 229
9.5 JSON Web令牌 230
9.5.1 已註冊的訴求 232
9.5.2 使用非對稱(公鑰)算法 235
9.6 參考閱讀 235
9.7 總結 236
第 10章 測試 237
10.1 對應用程序進行測試 237
10.1.1 測試結構詳解 239
10.1.2 測試的指導原則 240
10.1.3 單元測試 241
10.1.4 測試一個CSV生成器 243
10.2 測試驅動的開發 255
10.3 總結 257
第 11章 調試和性能分析 258
11.1 調試技巧 259
11.1.1 用print進行調試 259
11.1.2 用自定義函數進行調試 259
11.1.3 使用Python調試器 261
11.1.4 檢查日誌 263
11.1.5 其他方法 266
11.2 故障排除指南 267
11.2.1 在哪裡檢查 267
11.2.2 使用測試進行調試 268
11.2.4 監視 268
11.3 對Python進行性能分析 268
11.3.1 什麽時候進行性能分析? 271
11.3.2 測量執行時間 271
11.4 總結 272
第 12章 GUI和腳本 273
12.1 第 一種方法:腳本 275
12.1.1 導入部分 275
12.1.2 解析參數 276
12.1.3 業務邏輯 278
12.2 第二種方法:GUI應用
程序 281
12.2.1 導入部分 282
12.2.2 佈局邏輯 283
12.2.3 業務邏輯 286
12.2.4 如何改進這個應用程序? 291
12.3 下一步的方向 292
12.3.1 turtle模塊 292
12.3.2 wxPython、PyQt和
PyGTK 292
12.3.3 最小驚訝原則 293
12.3.4 線程方面的考慮 293
12.4 總結 293
第 13章 數據科學簡介 295
13.1 IPython和Jupyter Notebook 296
13.1.1 使用Anaconda 297
13.1.2 啟動Notebook 298
13.2 處理數據 298
13.2.1 設置Notebook 299
13.2.2 準備數據 299
12.2.3 清理數據 303
13.2.4 創建DataFrame 304
13.2.5 把DataFrame保存到文件 311
13.2.6 顯示結果 311
13.3 下一步的方向 316
13.4 總結 317
第 14章 API開發 318
14.1 什麽是Web? 318
14.1.1 Web的工作方式 319
14.1.2 響應狀態碼 320
14.2 類型提示:概述 320
14.2.1 類型提示的優點 321
14.2.2 類型提示的精華 322
14.3 API簡介 324
14.3.1 什麽是API 324
14.3.2 API的用途 324
14.3.3 API協議 325
14.3.4 API數據交換格式 325
14.4 鐵路API 326
14.4.1 對數據庫進行建模 327
14.4.2 主要的設置和配置 332
14.4.3 車站端點 333
14.4.4 用戶認證 345
14.4.5 創建API文檔 347
14.5 消費API 348
14.6 未來的方向 353
14.7 總結 354
第 15章 打包Python應用程序 355
15.1 Python包索引 355
15.2 列車調度項目 357
15.3 用setuptools進行打包 361
15.3.1 必要的文件 361
15.3.2 程序包的元數據 364
15.3.3 定義程序包的內容 369
15.3.4 指定依賴關系 371
15.3.5 入口 373
15.4 生成和發布程序包 374
15.4.1 生成 374
15.4.2 發布 375
15.5 啟動新項目的建議 377
15.6 其他工具 377
15.7 進一步的學習方向 378
15.8 總結 378