Python 開發實例大全 下捲

張善香 田蘊琦 張曉博

  • 出版商: 人民郵電
  • 出版日期: 2023-05-01
  • 售價: $659
  • 貴賓價: 9.5$626
  • 語言: 簡體中文
  • 頁數: 400
  • ISBN: 7115528578
  • ISBN-13: 9787115528575
  • 相關分類: DjangoFlaskPython程式語言
  • 立即出貨 (庫存=1)

  • Python 開發實例大全 下捲-preview-1
  • Python 開發實例大全 下捲-preview-2
Python 開發實例大全 下捲-preview-1

買這商品的人也買了...

商品描述

本書內容齊全,通過範例循序漸進地講解了開發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