Python程序設計:基礎與實踐

殷錫亮 劉陽 張勝揚

  • Python程序設計:基礎與實踐-preview-1
  • Python程序設計:基礎與實踐-preview-2
Python程序設計:基礎與實踐-preview-1

商品描述

Python 是一種面向對象的解釋型高級編程語言,是當前流行的編程語言之一。本書系統性地介紹Python 的基礎知識及利用 Python 進行項目開發的實踐。全書分兩部分,第一部分介紹 Python 的基礎語法、Python 自帶的兩個模塊及其使用方法,以及 Python 的矩陣計算包 NumPy 的使用方法等,在介紹基礎語法的同時強調利用 Python 進行編程時需要註意的編程規範;第二部分聚焦科學研究和工程實踐中比較前沿的方向,涵蓋繪圖、圖像處理、優化計算、游戲開發、基於 Web 的系統開發、爬蟲、機器學習等方面的項目實踐,側重點是利用 Python 實現項目需求。

作者簡介

殷锡亮,副教授,工学博士,中国人工智能学会会员。参与黑龙江省自然科学基金项目一项,发表3篇SCI、2篇EI检索论文,获得国家发明专利三项。拥有6年通信行业上市企业研发经验和8年高校信息通信技术类专业教学经验。研究领域包括机器视觉、室内定位、人工智能等。

刘阳,数据库系统工程师,副教授,工程硕士。2006至今,就职于哈尔滨职业技术学院,主要讲授数据库管理及维护、Web综合实战、Python、动态语言编程等课程,擅长网站开发和建设,曾担任第46届世界技能大赛黑龙江省选拔赛“网站设计与开发”项目命题专家及裁判(2020年),第45届世界技能大赛黑龙江省选拔赛“网站设计与开发”裁判(2018年),第七届黑龙江省残疾人技能大赛网页制作赛项裁判(2018年)。

张胜扬,高级讲师,就职于北京中软国际教育科技股份有限公司,曾讲授西北工业大学“Python网络爬虫认知实训”课程,东北农业大学“人工智能实训”课程,北京联通软件研究院“Python基础及数据采集”课程企业培训,中国移动“机器学习算法”授课企业培训,中海航“基于Django的微服务架构”课程。研究方向包括大数据采集及数据分析、高等数学数据分析、机器学习数据分析、网站架构、图像识别等。

目錄大綱

第 一部分 Python 基礎

第 1 章 Python 集成開發環境介紹 3

1.1 Python IDLE Shell 3

1.2 PyCharm 集成開發環境 4

第 2 章 通過 IDLE 學習基本的 Python操作 6

2.1 使用 Python IDLE 與電腦對話 6

2.2 電腦語言的精華:算法 7

2.3 計算器:數和計算表達式 8

2.4 變量:程序的最小單元 10

2.5 語句:程序的基本單元 11

2.6 獲取用戶輸入:人工智能程序的眼睛 11

2.7 函數:功能 12

2.8 模塊:倉庫 13

2.9 字符串處理 14

2.10 Python 的可執行程序 19

2.11 Python 的程序註釋 21

2.12 運行 Python 程序 22

2.13 小結 23

第3章 操作 Python 數據容器——序列和字典 25

3.1 序列 25

3.2 字典 34

3.3 小結 40

第 4 章 使用字符串 42

4.1 不可變的字符串 42

4.2 像 C 語言一樣設置字符串的格式 42

4.3 模板法 43

4.4 format 方法 43

4.5 字符串方法 45

4.6 小結 47

第 5 章 語句 48

5.1 賦值語句 48

5.2 條件語句 50

5.3 循環語句 53

5.3.1 while 循環 54

5.3.2 for 循環 55

5.3.3 迭代字典 56

5.3.4 使用 break 語句、continue 語句跳出循環 56

5.3.5 循環後的 else 子句 57

5.3.6 循環嵌套 58

5.4 其他語句 58

5.4.1 pass 語句 58

5.4.2 del 語句 59

5.4.3 exec 語句(Python 2) 60

5.4.4 def 語句與 return 語句 61

5.5 小結 61

第 6 章 函數 63

6.1 復用性與邏輯性 63

6.2 自定義函數 63

6.3 函數的參數 66

6.4 作用域 68

6.5 函數的遞歸 69

6.6 小結 69

第 7 章 面向對象編程 70

7.1 對象 70

7.2 類 71

7.2.1 創建自定義類 71

7.2.2 類的名字空間 71

7.2.3 超類和繼承 72

7.2.4 封裝 73

7.3 小結 73

第 8 章 異常 75

8.1 異常定義 75

8.2 異常處理 75

8.2.1 raise 語句 75

8.2.2 自定義異常類 76

8.2.3 try-except 語句 76

8.2.4 finally 語句 78

8.3 if-else 語句與 try-except 語句的比較 79

8.4 告警 79

8.5 小結 80

第 9 章 特殊方法、特性、迭代器和生成器 81

9.1 構造函數 81

9.2 特性 82

9.2.1 property 關鍵字與 property函數 82

9.2.2 靜態方法與類方法 84

9.2.3 __getattribute__、__getattr__、__setattr__、__dict__、__delattr__方法 86

9.3 迭代器 88

9.4 生成器 90

9.4.1 創建生成器 90

9.4.2 遞歸生成器 91

9.4.3 生成器的方法 92

9.5 小結 94

第 10 章 模塊 96

10.1 模塊的概念 96

10.2 模塊中的定義 99

10.3 常用的標準庫中的模塊 101

10.3.1 time 101

10.3.2 random 103

10.3.3 sys 106

10.3.4 os 108

10.3.5 其他模塊 113

10.4 小結 114

第 11 章 文件操作 115

11.1 打開文件 115

11.2 文件的基本操作 116

11.3 使用 fileinput 模塊迭代文件 118

11.4 文件上下文管理器 120

11.5 小結 121

第 12 章 數據庫操作 122

12.1 數據庫的 Python 接口 122

12.2 對 SQLite 數據庫的基本操作 123

12.2.1 創建數據庫連接和關閉數據庫連接 123

12.2.2 執行 SQL 語句 124

12.2.3 sqlite3 備份 129

12.3 小結 131

第 13 章 基於 NumPy 的線性代數 運算 132

13.1 下載並安裝 NumPy 132

13.2 基礎概念 133

13.2.1 數組的屬性 133

13.2.2 生成 NumPy 數組 134

13.2.3 輸出數組 136

13.2.4 數組基本運算 137

13.2.5 通用函數 138

13.2.6 索引、切片和迭代 138

13.3 數組變換 140

13.3.1 改變數組的形狀 140

13.3.2 數組間的堆疊 141

13.3.3 數組切割 142

13.4 矩陣運算 142

13.5 小結 144

第二部分 Python 項目實踐

第 14 章 使用 Matplotlib 繪圖 147

14.1 下載並安裝 Matplotlib、

SciPy 147

14.2 繪制簡單 2D 圖像 148

14.3 繪制復雜 2D 圖像 155

14.4 繪制 3D 圖像 159

14.5 小結 160

第 15 章 使用 OpenCV 處理圖像——圖像特徵提取及匹配 161

15.1 下載並安裝 opencv-python、opencv-contrib-python 和pyflann 161

15.2 圖像特徵提取 162

15.3 圖像特徵匹配 164

15.4 小結 169

第 16 章 使用 cvxpy 和 cvxopt 求解凸優化問題 170

16.1 下載並安裝 cvxpy 和 cvxopt 170

16.2 求解線性規劃問題 171

16.3 求解 L1 範數逼近問題 174

16.4 求解二次規劃問題 175

16.5 小結 177

第 17 章 使用 Pygame 實現外星人入侵游戲 178

17.1 下載並安裝 Pygame 178

17.2 Pygame 的使用方法 180

17.3 外星人入侵游戲項目設計與開發 200

17.3.1 游戲的初始設置 200

17.3.2 創建玩家飛船類 Ship 201

17.3.3 創建子彈類 Bullet 202

17.3.4 創建外星人飛船類 Alien 203

17.3.5 創建游戲統計信息類GameStates 204

17.3.6 創建按鈕類 Button 204

17.3.7 創建游戲功能函數 205

17.3.8 創建游戲入口 209

17.4 小結 210

第 18 章 使用 Django 框架快速創建用戶信息管理系統 211

18.1 Django 框架簡介與環境部署 211

18.2 Django 框架的基本使用方法 212

18.2.1 創建一個 Django 項目 212

18.2.2 Django 框架的基本配置 212

18.2.3 創建 Django 應用 215

18.2.4 定義視圖 215

18.3 基於 Django 和 MySQL 創建一個用戶信息管理系統 216

18.3.1 創建數據庫和數據表 216

18.3.2 創建項目和應用 216

18.3.3 添加 demo 項目的數據庫連接配置和基本配置 217

18.3.4 定義模型 218

18.3.5 實現 Web 端訪問 219

18.3.6 編輯模板文件 220

18.3.7 設置視圖 223

18.3.8 測試 224

18.4 小結 226

第 19 章 網絡爬蟲基礎 227

19.1 網絡爬蟲技術基礎 227

19.2 爬蟲環境搭建 228

19.3 源碼採集 230

19.3.1 使用 urllib 採集源碼 230

19.3.2 使用 Requests 採集源碼 232

19.3.3 使用 Selenium 採集源碼 233

19.4 數據解析 234

19.4.1 使用 bs4 解析數據 234

19.4.2 使用 lxml 解析數據 238

19.5 小結 239

第 20 章 天氣預測 241

20.1 下載並安裝 sklearn 241

20.2 天氣預測問題 243

20.3 回歸模型 244

20.3.1 線性回歸 244

20.3.2 決策樹回歸 251

20.3.3 隨機森林回歸 255

20.3.4 神經網絡回歸 257

20.4 小結 260

第 21 章 紅酒產地分類 261

21.1 數據集 261

21.2 分類器評價指標 263

21.3 分類器 265

21.3.1 支持向量機 265

21.3.2 最近鄰 268

21.3.3 樸素貝葉斯 271

21.3.4 投票分類器 273

21.4 小結 275

第 22 章 銀行客戶分析 276

22.1 數據集 276

22.2 聚類模型評估指標 278

22.2.1 蘭德指數 278

22.2.2 互信息評分 279

22.2.3 同質性、完整性及 V 測度 280

22.2.4 FM 指數 281

22.2.5 輪廓系數 281

22.2.6 CH 指數 282

22.2.7 DB 指數 282

22.3 聚類模型 282

22.3.1 K 均值聚類 282

22.3.2 DBSCAN 聚類 287

22.3.3 譜聚類 289

22.3.4 層次聚類 290

22.4 小結 293

附錄 1 部分X11/CSS4 顏色代碼目錄 294

附錄 2 互信息評分計算示例 296

附錄 3 同質性、完整性及 V 測度數值計算示例 298

參考資料 300