Python 開發實例大全 下捲
張善香 田蘊琦 張曉博
買這商品的人也買了...
-
$374明解 C語言, 3/e (入門篇)
-
$40321天學通 C++ (第8版)
-
$354$336 -
$354$336 -
$880$695 -
$458代替 VBA!用 Python 輕松實現 Excel 編程
-
$420$378 -
$454人工智能安全基礎
-
$356業務敏捷 打造數智時代的高適應力組織
-
$383ChatGPT : 智能對話開創新時代
-
$680$537 -
$516$490 -
$779$740 -
$594$564 -
$658高級 Python 核心編程開啟精通 Python 編程世界之旅
-
$505python核心編程:從入門到實踐:學與練
-
$659$626 -
$607前端工程化 : 基於 Vue.js 3.0 的設計與實踐
-
$600$468 -
$680$476 -
$720$360 -
$720$504 -
$352巧用 ChatGPT 輕鬆學演講
-
$780$608 -
$419$398
相關主題
商品描述
本書內容齊全,通過範例循序漸進地講解了開發Python應用程序的知識。本書主要內容包括:Python圖形圖像開發、多線程開發、Python游戲開發、數據可視化、Flask Web開發、Django Web開發、Python算法等知識。
本書既適合零基礎的人員學習,也適合已經瞭解了Python基礎語法的、希望進一步提高Python開發水平的讀者閱讀,還可作為程序員的參考書。
作者簡介
张善香 Java、C++、PHP、Python等开发语言,现在负责云的研发和架构工作。从2014年起便开始研究机器学习课题,是国内最早从事相关研究的专家之一。
目錄大綱
目 錄
第 10章 圖形圖像開發實戰 1
10.1 使用Pillow庫 2
範例10-01:安裝Pillow庫 2
範例10-02:使用Image模塊創建隨機大小圖片 2
範例10-03:使用Image模塊打開一幅圖片 3
範例10-04:實現圖片透明度混合 3
範例10-05:實現圖片遮罩混合處理 4
範例10-06:縮放指定圖片 5
範例10-07:使用Image模塊縮放指定圖片 5
範例10-08:對指定圖片實現剪切和粘貼功能 6
範例10-09:對指定圖片的格式進行轉換 6
範例10-10:旋轉指定圖片 7
範例10-11:對指定圖片實現過濾模糊操作 8
範例10-12:使用其他內置函數 8
範例10-13:使用Pillow繪制隨機點陣圖和點陣圖 9
範例10-14:將PNG圖片轉換為可讀寫的RLE圖片 10
範例10-15:使用ImageChops模塊實現圖片合成 13
範例10-16:實現圖像增強處理 13
範例10-17:實現同時增強處理多幅圖像 14
範例10-18:對指定圖片實現濾鏡特效 15
範例10-19:使用ImageDraw模塊繪制二維圖像 16
範例10-20:使用ImageFont模塊繪制二維圖像 17
範例10-21:生成隨機驗證碼圖片 18
範例10-22:使用ImageFont模塊繪制驗證碼 18
範例10-23:繪制指定年份的日歷 19
10.2 pyBarcode庫實戰 20
範例10-24:創建EAN-13標準的條形碼 20
範例10-25:將創建的EAN-13標準條形碼保存為PNG圖片 20
範例10-26:創建兩個條形碼圖片 21
10.3 使用庫qrcode創建二維碼 21
範例10-27:將文本信息生成為一個二維碼 21
範例10-28:將網址信息生成為一個二維碼 22
範例10-29:將網址信息生成為一個指定樣式二維碼 22
範例10-30:將網址信息生成為一個帶有素材圖片的二維碼 23
範例10-31:使用qrcode開發一個二維碼生成器 24
10.4 scikit-image開發實戰 26
範例10-32:安裝scikit-image 26
範例10-33:使用skimage讀入並顯示外部圖像 26
範例10-34:讀取並顯示外部灰度圖像 27
範例10-35:讀取並顯示內置星空圖片 27
範例10-36:讀取並保存內置星空圖片 28
範例10-37:顯示內置星空圖片的基本信息 29
範例10-38:實現內置貓圖片的紅色通道的效果 29
範例10-39:對內置貓圖片進行二值化操作 30
範例10-40:對內置貓圖片進行裁剪處理 31
範例10-41:將unit8類型轉換成float類型 31
範例10-42:將float類型轉換成unit8類型 31
範例10-43:將RGB圖轉換為灰度圖 32
範例10-44:使用skimage實現繪制圖片功能 32
範例10-45:使用subplot()函數繪制多視圖窗口圖片 33
範例10-46:使用subplots()函數繪制多視圖窗口圖片 34
範例10-47:使用viewer繪制並顯示內置月亮圖片 35
範例10-48:顯示系統內指定素材圖片 35
範例10-49:讀取並顯示文件夾pic中JPG圖片的個數 36
範例10-50:將指定素材圖片批量轉換為灰度圖 36
範例10-51:使用函數concatenate_images(ic)連接圖片 37
範例10-52:改變指定圖片的大小 37
範例10-53:使用函數rescale()縮放指定圖片 38
範例10-54:使用函數rotate()旋轉指定圖片 38
10.5 使用face_recognition 實現人臉識別 39
範例10-55:搭建開發環境 39
範例10-56:顯示指定人像的人臉特徵 39
範例10-57:在指定照片中識別人臉 40
範例10-58:識別照片中的所有人臉 41
範例10-59:判斷照片中是否包含某個人臉 43
範例10-60:識別照片中的人到底是誰 43
範例10-61:攝像頭實時識別 44
第 11章 多線程開發實戰 46
11.1 使用threading模塊 47
範例11-01:使用_thread模塊創建2個線程 47
範例11-02:直接在線程中執行函數 47
範例11-03:通過繼承類threading.Thread創建線程 48
範例11-04:使用方法join()實現線程等待 48
範例11-05:使用RLock實現線程同步 49
範例11-06:使用Lock對臨界區加鎖 49
範例11-07:使用上下文管理器避免死鎖 50
範例11-08:測試前面上下文管理器文件的功能 51
範例11-09:5位哲學家就餐問題 52
範例11-10:使用Condition實現一個捉迷藏游戲 53
範例11-11:實現一個周期性的定時器 54
範例11-12:使用Semaphore對象執行4個線程 55
範例11-13:只喚醒一個單獨的等待線程 55
範例11-14:使用BoundedSemaphore對象執行4個線程 56
範例11-15:使用Event對象實現線程同步 57
範例11-16:使用Event對象同步線程的啟動 57
範例11-17:使用Timer設置線程延遲5s後執行 58
範例11-18:使用local對象管理線程局部數據 59
範例11-19:使用local()創建一個線程本地存儲對象 59
11.2 使用進程庫multiprocessing 60
範例11-20:使用Process對象生成進程 60
範例11-21:使用Pipe對象創建雙向管道 61
範例11-22:使用Queue對象放入進程 61
範例11-23:使用Connection對象處理數據 62
範例11-24:使用Shared對象在共享內存中創建共享ctypes對象 62
範例11-25:使用Manager對象操作列表 63
範例11-26:使用Manager對象共享對象類型 63
範例11-27:使用Proxy對象共享對象類型 64
範例11-28:使用Pool對象創建多個進程並實現並發處理 65
範例11-29:使用Pool對象實現進程調度 65
範例11-30:使用Pool對象並行處理某個目錄下的文件 66
範例11-31:使用線程和隊列實現Actor並發編程模式 67
範例11-32:使用元組的形式傳遞帶標簽消息 68
範例11-33:實現一個Actor並發編程模式的變種 69
11.3 使用庫concurrent.futures 69
範例11-34:使用submit()方法操作線程池 70
範例11-35:使用map()方法返回迭代器結果 70
範例11-36:使用wait()方法返回一個元組 70
範例11-37:使用ThreadPoolExecutor實現異步調用 71
範例11-38:使用ProcessPoolExecutor實現異步調用 71
範例11-39:使用線程池服務 客戶端 72
範例11-40:手動創建自己的 線程池 73
範例11-41:使用ThreadPoolExecutor 創建線程池的優勢 73
範例11-42:讀取數據並標識出 所有訪問過文件 73
範例11-43:實現多核讀取操作 74
範例11-44:使用類Future實現 封裝操作 75
範例11-45:使用生成器代替 線程實現並發 76
範例11-46:使用生成器來實現Actor並發 77
11.4 使用sched模塊 78
範例11-47:使用類scheduler實現時間調度 78
範例11-48:使用scheduler對象實現時間調度 78
範例11-49:使用sched()方法定時執行任務 79
範例11-50:使用sched循環執行任務 79
範例11-51:使用queue模塊實現線程之間數據通信 80
範例11-52:構建一個線程安全的優先級隊列 81
範例11-53:實現FIFO隊列 82
範例11-54:實現LIFO隊列 83
範例11-55:使用模塊queue實現優先級隊列 83
範例11-56:輪詢多個線程隊列 83
11.5 使用模塊subprocess 85
範例11-57:使用模塊subprocess創建子進程 85
範例11-58:使用類Popen創建進程並執行指定源碼 86
第 12章 Python游戲開發實戰 87
12.1 簡單的小游戲 88
範例12-01:猜數游戲 88
範例12-02:龍的世界游戲 89
範例12-03:Hangman游戲 90
範例12-04:愷撒密碼游戲 94
範例12-05:維吉尼亞密碼游戲 94
範例12-06:Reversi黑白棋游戲 95
範例12-07:石頭、剪子、布游戲 99
12.2 Pygame游戲開發初級實戰 101
範例12-08:安裝Pygame 101
範例12-09:開發第 一個Pygame程序 102
範例12-10:處理鍵盤事件 103
範例12-11:在全屏顯示模式和非全屏顯示模式之間進行切換 104
範例12-12:顯示指定樣式文字 104
範例12-13:實現一個三原色顏色滑動條效果 105
範例12-14:隨機在屏幕上繪制點 106
範例12-15:隨機在屏幕中繪制各種多邊形 107
12.3 Pygame游戲開發高級實戰 108
範例12-16:開發一個俄羅斯方塊游戲 108
範例12-17:仿微信飛機游戲 115
範例12-18:簡單的貪吃蛇游戲 117
範例12-19:推箱子游戲 120
範例12-20:吃蘋果游戲 123
範例12-21:簡易跑酷游戲 125
範例12-22:小貓吃魚游戲 128
範例12-23:分析官網的坦克大戰游戲 129
範例12-24:兩種貪吃蛇游戲方案 132
範例12-25:簡易俄羅斯方塊游戲 139
12.4 Cocos2d游戲開發實戰 140
範例12-26:第 一個Cocos2d程序 140
範例12-27:創建層 141
範例12-28:在層中添加事件 142
範例12-29:在層中添加動作 143
範例12-30:在層中使用鼠標按鍵事件 144
範例12-31:使用地圖 145
範例12-32:2048游戲 145
範例12-33:貪吃蛇游戲 147
範例12-34:水果連連看游戲 148
範例12-35:AI智能貪吃蛇方案 149
範例12-36:AI智能五子棋游戲 152
第 13章 數據可視化實戰 156
13.1 使用Matplotlib 157
範例13-01:安裝Matplotlib 157
範例13-02:繪制散點圖 158
範例13-03:繪制一個簡單的折線圖 159
範例13-04:設置標簽文字和線條粗細 160
範例13-05:繪制指定樣式的散點圖 160
範例13-06:繪制柱狀圖 161
範例13-07:繪制有說明信息的柱狀圖 162
範例13-08:繪制一個比較美觀的柱狀圖 163
範例13-09:繪制多幅子圖 165
範例13-10:在一個坐標系中繪制兩個折線圖 166
範例13-11:使用正弦函數和餘弦函數繪制曲線 167
範例13-12:使用Matplotlib的默認配置繪圖 167
範例13-13:繪制隨機漫步圖 168
範例13-14:繪制3D圖表 170
範例13-15:繪制波浪圖 171
範例13-16:繪制散點圖 171
範例13-17:繪制等高線圖 171
範例13-18:繪制餅狀圖 172
範例13-19:大數據分析2014年最高溫度和最低溫度 173
範例13-20:在tkinter中使用Matplotlib繪制圖表 174
13.2 使用庫pygal 175
範例13-21:安裝庫pygal 176
範例13-22:使用pygal模擬擲骰子 176
範例13-23:模擬同時擲兩個骰子 177
13.3 讀寫處理CSV文件 178
範例13-24:輸出CSV文件中的日期和標題 178
範例13-25:將數據保存為CSV格式 179
範例13-26:讀取指定CSV文件的文件頭 179
範例13-27:輸出CSV文件的文件頭和對應位置 180
範例13-28:輸出CSV文件中每天的最高氣溫 180
範例13-29:根據CSV文件數據繪制圖表 181
範例13-30:提取CSV數據並保存到MySQL數據庫 181
範例13-31:提取CSV數據並保存到SQLite數據庫 184
13.4 使用庫pandas 185
範例13-32:安裝庫pandas並測試是否安裝成功 185
範例13-33:讀取並顯示CSV文件中的前3條數據 186
範例13-34:更加規整地讀取並顯示CSV文件中的前3條數據 186
範例13-35:讀取並顯示CSV文件中的某列數據 187
範例13-36:用統計圖表展示CSV中的某列數據 187
範例13-37:選擇指定數據 188
範例13-38:顯示CSV文件中某列和某行數據 188
範例13-39:在圖表中統計顯示CSV文件中的出現次數前10名信息 191
範例13-40:統計文件bikes.csv中每個月的騎行數據 192
範例13-41:輸出某街道前5天的騎行數據 192
範例13-42:使用時間序列功能 193
範例13-43:獲取某一天是星期幾 193
範例13-44:統計周一到周日每天的騎行數據 193
範例13-45:使用Matplotlib圖表統計周一到周日每天的騎行數據 194
範例13-46:使用Matplotlib統計某區域的全年天氣數據 194
範例13-47:輸出CSV文件中的全部天氣信息 195
13.5 使用庫NumPy 195
範例13-48:安裝庫NumPy並創建一個2×3的二維數組 196
範例13-49:索引數組中的元素 196
範例13-50:使用內置函數操作數組 196
範例13-51:使用arange()函數創建數組並進行迭代 197
範例13-52:數組轉置和修改 197
範例13-53:返回展開為一維數組的副本 197
範例13-54:使用字符串函數 198
範例13-55:使用正弦、餘弦和正切函數 199
範例13-56:使用算術函數實現四則運算 199
範例13-57:從給定數組的元素中沿指定軸返回最小值和最大值 200
範例13-58:使用函數sort()實現快速排序 200
範例13-59:使用函數byteswap()實現字節交換 201
範例13-60:使用函數empty()返回一個矩陣 202
範例13-61:在NumPy中使用Matplotlib 202
範例13-62:使用Matplotlib繪制正弦波圖 203
範例13-63:使用Matplotlib繪制直方圖 203
第 14章 Flask Web開發實戰 204
14.1 Flask Web初級實戰 205
範例14-01:安裝Flask 205
範例14-02:第 一個Flask Web程序 205
範例14-03:使用PyCharm開發Flask程序 206
範例14-04:傳遞URL參數 208
範例14-05:使用GET請求獲取URL參數 208
範例14-06:使用cookie跟蹤用戶行為 209
範例14-07:使用Flask-Script擴展增強程序功能 210
範例14-08:使用模板 211
範例14-09:使用Flask-Bootstrap
擴展 212範例14-10:使用Flask-Moment
擴展本地化日期和時間 214
範例14-11:使用Flask-WTF擴展處理Web表單 215
範例14-12:文件上傳系統 217
範例14-13:用戶註冊登錄系統 218
範例14-14:使用Flask-SQLAlchemy管理數據庫 220
範例14-15:使用Flask-Mail 擴展發送電子郵件 222
範例14-16:使用SendGrid發送郵件 225
14.2 Flask Web高級實戰 227
範例14-17:Python+Flask+MySQL開發信息發布系統 227
範例14-18:圖書借閱管理系統 230
範例14-19:Flask+TinyDB實現個人日誌系統 235
範例14-20:使用Peewee+Flask+MySQL開發一個在線留言系統 240
範例14-21:使用Flask+MySQL
開發一個信息發布系統 241
第 15章 Django Web開發實戰 245
15.1 Django Web初級實戰 246
範例15-01:安裝Django 246
範例15-02:第 一個Django項目 246
範例15-03:在URL中傳遞參數 248
範例15-04:使用模板 250
範例15-05:使用表單 251
範例15-06:實現基本的數據庫操作 252
15.2 Django Web高級實戰 253
範例15-07:使用Django後台管理系統開發一個博客系統 253
範例15-08:開發一個新聞聚合系統 256
範例15-09:開發一個在線商城系統 262
範例15-10:智能書簽管理系統 270
範例15-11:智能新聞發布系統 274
範例15-12:智能圖書借閱系統 277
範例15-13:Django+ Vue在線聊天室系統 280
15.3 使用庫Mezzanine 281
範例15-14:使用Mezzanine開發一個內容管理系統 281
範例15-15:基於Cartridge的購物車程序 283
範例15-16:在線BBS論壇系統 285
第 16章 三維立體程序開發實戰 290
16.1 使用Matplotlib繪制三維圖形 291
範例16-01:繪制一個簡單的3D圖形 291
範例16-02:繪制3D曲線 291
範例16-03:繪制3D輪廓圖 292
範例16-04:繪制3D直方圖 293
範例16-05:繪制3D網狀線 293
範例16-06:繪制3D三角面片圖 293
範例16-07:繪制3D散點圖 294
範例16-08:繪制3D文字 295
範例16-09:繪制3D條形圖 296
範例16-10:繪制3D曲面圖 296
範例16-11:繪制3D散點圖 297
範例16-12:繪制混合圖 298
範例16-13:繪制子圖 298
範例16-14:繪制3D坐標系 299
16.2 使用OpenGL繪制三維圖形 300
範例16-15:安裝PyOpenGL 301
範例16-16:第 一個PyOpenGL程序 301
範例16-17:點線面的繪制 302
範例16-18:繪制平方曲線 304
範例16-19:繪制立方曲線 305
範例16-20:繪制藝術圖像 306
範例16-21:繪制不同的線條 307
範例16-22:繪制平滑陰影三角形 308
範例16-23:渲染一個簡單的立方體 309
範例16-24:實現燈光渲染 309
範例16-25:燈光渲染陳列茶壺 310
範例16-26:控制旋轉物體 313
範例16-27:實現一個簡單的動畫 313
範例16-28:實現旋轉復雜圖形的動畫 314
範例16-29:實現一個簡單的3D游戲 315
範例16-30:移動的3D立方體 319
範例16-31:飛翔的立方體世界 320
16.3 使用Panda3D繪制三維圖形 321
範例16-32:安裝Panda3D並
創建第 一個Panda3D程序 321
範例16-33:熊貓游戲 324
範例16-34:迷宮中的小球游戲 324
範例16-35:飛船大作戰游戲 328
範例16-36:拳擊賽游戲 330
範例16-37:超級大恐龍 331
範例16-38:熊貓游樂場游戲 332
範例16-39:魔幻迪廳游戲 332
範例16-40:魔幻螢火蟲之夜 333
範例16-41:奔跑的精靈 333
第 17章 Python算法實戰 334
17.1 常用的算法思想實戰 335
範例17-01:使用遞歸函數創建質數 335
範例17-02:實現拓撲排序 335
範例17-03:使用分治算法求順序表的最大值 335
範例17-04:判斷某個元素是否在其中 336
範例17-05:找出一組序列中的第k小的元素 336
範例17-06:使用回溯法求集合{1, 2, 3, 4}的所有子集 337
範例17-07:獲取[1,2,3,4]的所有排列 338
範例17-08:回溯法的8“皇後”問題 339
範例17-09:使用回溯法解決迷宮問題 340
範例17-10:使用回溯法解決背包問題 341
範例17-11:找出從正整數1,2,3…n中任取r個數的所有組合 342
範例17-12:使用回溯法實現圖的遍歷 343
範例17-13:使用回溯法解決旅行者交通費用問題 344
範例17-14:使用回溯法解決圖的著色問題 346
範例17-15:實現 'a'、'b'、'c'、'd' 4個元素的全排列 347
範例17-16:解決選排列問題 348
範例17-17:解決最佳作業調度問題 350
範例17-18:最長公共子序列 351
範例17-19:爬樓梯問題 352
範例17-20:使用窮舉法計算24點 353
範例17-21:窮舉指定長度的所有字符串 353
範例17-22:使用窮舉法計算平方根 354
範例17-23:解決一個數學問題 354
範例17-24:使用遞歸法計算斐波那契數列的第n項 355
範例17-25:使用遞歸法計算兩個數的乘積 355
範例17-26:計算n的階乘 356
範例17-27:使用遞歸算法解決“漢諾塔”問題 356
範例17-28:利用遞歸算法獲取
斐波那契數列前n項的值 358
範例17-29:利用切片遞歸方式查找數據 358
範例17-30:順時針90°調換二維數組中的數據 359
範例17-31:換零錢的問題 359
範例17-32:使用遞歸算法實現二分法查找 360
範例17-33:小球彈跳遞歸計算距離 360
範例17-34:深度優先與廣度優先遍歷的遞歸實現 360
17.2 排序操作算法實戰 362
範例17-35:實現快速排序 362
範例17-36:實現合並排序 363
範例17-37:使用遞歸算法實現快速排序 363
範例17-38:實現冒泡排序 363
範例17-39:實現從大到小的冒泡排序 364
範例17-40:冒泡排序的另外方案 364
範例17-41:冒泡排序的降序排列 365
範例17-42:實現基本的快速排列 366
範例17-43:實現插入排序 366
範例17-44:實現無序數據的插入排序 367
範例17-45:實現固定數據的插入排序 367
範例17-46:排序隨機生成的0~100的數值 368
範例17-47:實現選擇排序 368
範例17-48:實現直接選擇排序 369
範例17-49:實現選擇排序的操作步驟 369
範例17-50:選擇排序和Python
內置函數的效率對比 370
範例17-51:使用選擇排序處理字符 371
範例17-52:排序處理多個隊列 372
範例17-53:使用堆排序 372
範例17-54:使用堆排序處理數據 373
範例17-55:將數組按照堆輸出 374
範例17-56:在堆內實現任意查找 374
範例17-57:實現最小堆 375
範例17-58:使用堆進行排序 376
範例17-59:實現大頂堆排序 377
範例17-60:實現堆排序的3種方式 378
範例17-61:實現基數排序 379
範例17-62:實現桶排序 380
範例17-63:實現計數排序 380
範例17-64:實現希爾排序 381
範例17-65:展示希爾排序的步驟 381
範例17-66:利用希爾排序排列一個列表 382
範例17-67:實現折半插入排序 382
範例17-68:實現歸並排序 383
範例17-69:使用歸並排序處理指定列表 384
範例17-70:歸並排序的另外解決方案 384
範例17-71:使用歸並排序處理兩個列表 385
範例17-72:浮點數的歸並排序 385
範例17-73:使用折半查找算法 386
範例17-74:展示歸並排序的處理步驟 387
17.3 經典數據結構開發實戰 387
範例17-75:漢諾塔問題 387
範例17-76:簡單的爬樓梯問題 387
範例17-77:最近點對問題 388
範例17-78:從數組中找出指定和的數值組合 389
範例17-79:找零問題 390
範例17-80:馬踏棋盤 391
範例17-81:渡過問題 392
範例17-82:1000以內的完全數 393
範例17-83:多進程驗證哥德巴赫猜想 394
範例17-84:高斯消元法解線性方程組 395
範例17-85:歌星大獎賽 398
範例17-86:捕魚和分魚 398
範例17-87:平分7筐魚 399
範例17-88:百錢買百雞 400