本書是一本覆蓋研究生、本?粕、中學生等所有Python學習者的入門書。以"夠用、適用、易學”為原則,組織、設計全書的框架和內(nèi)容,全書共包括四篇:第一篇——營造環(huán)境,主要闡述學習的環(huán)境與平臺安裝、IDLE與Pycharm的使用、常見的內(nèi)外部模塊及其安裝。第二篇——掀起頭蓋,重點討論Python的主要語法:數(shù)據(jù)類型、變量常量、語句、輸入輸出、函數(shù)與模塊化、文件與對象、類、異常。第三篇——實戰(zhàn)演習,主要展示了四個完整的應用案例,涵蓋桌面小游戲、數(shù)據(jù)挖掘與分析、圖像識別與機器學習、智能檢測與控制。第四篇——繼續(xù)前進,著重討論了腳本文件的打包、代碼的Pythonic化和Python的博大精深。本書在內(nèi)容組織和框架設計上具有兩個鮮明特點:全案例、基于讀者學習。從讀者學習的角度,組織每個章節(jié)的內(nèi)容體系,幾乎所有的知識點都輔之以范例,同時給出了四個完整的綜合性工程案例,這些都十分有利于學習者學習和模仿。本書適合于所有層次對Python感興趣的專業(yè)和非專業(yè)的讀者。
沈紅衛(wèi),男,1966年,教授/院長,從事高等教育教學工作24年,曾主講《單片機原理及其應用》、《電子技術》、《C語言》、《虛擬儀器技術》等課程。獲得國家教學成果獎二等獎一項,主持省級精品課程1門,出版省級重點教材2本、專著4部,主持教育部、浙江省教育教學類課題6項。 是浙江省電工電子優(yōu)秀教學團隊的主持人,浙江省“十二五”新興特色專業(yè)和浙江省“十三五”特色專業(yè)的負責人。主編的1部教材曾被評為浙江省“十二五”優(yōu)秀教材。
目 錄
第一篇 營造環(huán)境
第1章 Python及其安裝
1.1 我為什么要學習Python
1.1.1 它的廣泛性
1.1.2 它的新穎性
1.1.3 它的生態(tài)性
1.1.4 Python的應用領域舉例
1.1.5 Python的局限性
1.2 學習Python的必備神器
1.2.1 Python的底細
1.2.2 PyCharm
1.3 安裝和設置Python
1.3.1 獲取Python
1.3.2 安裝Python
1.3.3 設置Python
思考與實踐
第2章 IDLE的使用
2.1 IDLE的安裝與設置
2.1.1 IDLE的安裝
2.1.2 IDLE的啟動
2.1.3 IDLE的個性化設置
2.2 Edit編輯模式與Shell命令行模式的切換
2.2.1 Edit編輯模式與Shell命令行模式的切換
2.2.2 IDLE的文本編輯功能
2.3 在IDLE中運行程序
2.3.1 在Edit模式下運行程序
2.3.2 在Shell模式下運行程序
2.4 IDLE的程序調(diào)試功能
2.4.1 兩種調(diào)試方法
2.4.2 在Shell模式下的程序調(diào)試
2.4.3 在Edit模式下的程序調(diào)試
2.4.4 如何斷點調(diào)試
2.5 在Shell模式下如何清屏
思考與實踐
第3章 安裝PyCharm
3.1 PyCharm及其安裝
3.1.1 PyCharm的三種版本形式
3.1.2 獲取PyCharm
3.1.3 安裝PyCharm
3.2 PyCharm的個性化設置
3.2.1 設置入口
3.2.2 外觀設置
3.2.3 Editor與自動代碼補齊設置
3.2.4 解釋器(Interpreter)設置
3.2.5 運行鍵設置
思考與實踐
第4章 Python的標準資源
4.1 Python 有哪些內(nèi)置的標準模塊
4.1.1 通過help()命令查看內(nèi)置模塊
4.1.2 通過IDLE的help菜單查看內(nèi)置模塊
4.1.3 常用內(nèi)置模塊及其功能介紹
4.1.4 內(nèi)置模塊的主要函數(shù)(方法)簡介
4.2 內(nèi)置模塊的應用舉例
4.2.1 路徑相關的舉例
4.2.2 時間相關的舉例
4.3 Python有哪些內(nèi)置函數(shù)
4.3.1 如何查看Python有哪些內(nèi)置函數(shù)
4.3.2 內(nèi)置函數(shù)及其功能
4.3.3 內(nèi)置函數(shù)的應用舉例
思考與實踐
第5章 Python的外部資源
5.1 為什么要安裝外部模塊
5.2 如何安裝外部模塊
5.2.1 升級更新安裝工具
5.2.2 使用pip安裝外部模塊
5.2.3 使用easy_install安裝外部模塊
5.3 安裝后的外部模塊導入PyCharm
5.4 通過PyCharm安裝外部庫
5.4.1 通過Project Interpreter方式安裝外部庫
5.4.2 通過Plugins方式安裝外部庫
5.5 常用的外部模塊及其應用
5.5.1 常用的外部模塊
5.5.2 外部模塊的應用舉例
思考與實踐
第二篇 掀起頭蓋
第6章 我的Python處女作
6.1 新建工程
6.1.1 新建工程
6.1.2 新建Python文件
6.1.3 配置工程并運行
6.2 關于工程及其要注意的三個事項
6.2.1 關于首次運行程序的注意事項
6.2.2 關于工程的必要設置
6.2.3 關于運行與調(diào)試功能的設置問題
6.2.4 關于三種運行方式
思考與實踐
第7章 Python的數(shù)據(jù)類型
7.1 Python程序的基本組成
7.1.1 一個溫度轉(zhuǎn)換的例子
7.1.2 程序的注釋
7.1.3 語句
7.1.4 常量
7.1.5 變量
7.1.6 標識符
7.1.7 函數(shù)
7.2 Python的數(shù)據(jù)類型
7.2.1 Python的數(shù)據(jù)類型分類
7.2.2 Python 中變量的基本特性
7.3 Python的常量
7.3.1 數(shù)字
7.3.2 字符串
7.3.3 布爾值
7.3.4 空值
7.4 Python的基本類型變量
7.4.1 變量的使用
7.4.2 基本變量的賦值
7.4.3 變量的地址
7.5 Python的構造類型變量
7.5.1 String(字符串)
7.5.2 list(列表)
7.5.3 tuple(元組)
7.5.4 Set(集合)
7.5.5 Dictionary(字典)
7.6 歸納與總結
7.6.1 各種類型的相互轉(zhuǎn)化
7.6.2 字符串、列表、元組、字典和集合的異同點
思考與實踐
第8章 Python的數(shù)據(jù)運算
8.1 運算的分類
8.2 運算符的功能與特性
8.2.1 算術運算
8.2.2 比較運算
8.2.3 賦值運算
8.2.4 邏輯運算符
8.2.5 成員運算
8.2.6 身份運算
8.2.7 按位運算符
8.3 運算的優(yōu)先級
8.3.1 優(yōu)先級與結合性
8.3.2 優(yōu)先級的使用舉例
思考與實踐
第9章 鍵盤輸入與屏幕輸出
9.1 鍵盤輸入與input()函數(shù)
9.1.1 input()函數(shù)
9.1.2 類型之間的轉(zhuǎn)換
9.2 屏幕輸出與print()函數(shù)
9.2.1 print()函數(shù)的功能
9.2.2 print()的三種使用形式
9.3 練一練:通用倒計時器
9.3.1 程序設計要求與具體程序
9.3.2 程序的兩種運行方式
9.4 歸納與總結
思考與實踐
第10章 學會選擇靠if語句
10.1 選擇問題與if語句
10.2 if語句的三種形式
10.2.1 if的第一種形式
10.2.2 if的第二種形式
10.2.3 if語句的第三種形式
10.3 多重if語句與if的嵌套
10.4 關于if語句的重要小結
10.4.1 關于if語句的小結
10.4.2 練一練——溫度轉(zhuǎn)換升級版1
思考與實踐
第11章 重復操作與循環(huán)語句
11.1 循環(huán)及其應用
11.2 while語句與for語句
11.2.1 while語句
11.2.2 for語句
11.3 continue和break語句
11.4 練一練——攝氏與華氏溫度轉(zhuǎn)換
11.4.1 程序設計要求與具體程序
11.4.2 程序的詳細分析
11.5 歸納與總結
11.5.1 循環(huán)語句for與while的else擴展
11.5.2 語句break與 continue的區(qū)別
思考與實踐
第12章 函數(shù)讓程序的優(yōu)雅
12.1 什么是函數(shù)
12.1.1 函數(shù)的概念
12.1.2 為什么要使用函數(shù)
12.2 函數(shù)的定義與調(diào)用
12.2.1 如何定義一個函數(shù)
12.2.2 如何調(diào)用函數(shù)
12.3 函數(shù)的參數(shù)傳遞與不定長參數(shù)
12.3.1 可變類型參數(shù)的傳遞與不可變類型參數(shù)的傳遞
12.3.2 必須參數(shù)、默認參數(shù)與關鍵詞參數(shù)
12.3.3 不定長參數(shù)
12.4 匿名函數(shù)
12.5 變量的作用范圍
12.6 練一練——剪刀石頭布游戲
12.6.1 程序的設計要求與算法設計
12.6.2 完整程序
12.7 歸納與總結
12.7.1 函數(shù)的意義
12.7.2 return 語句
12.7.3 關于默認參數(shù)
12.7.4 if __name__ =='__main__'的作用
思考與實踐
第13章 “分而治之”與程序的模塊化
13.1 模塊化及其意義
13.1.1 為什么要模塊化
13.1.2 什么是模塊
13.2 如何定義和使用模塊
13.2.1 中模塊——文件模塊的定義與應用
13.2.2 模塊是如何被找到并引用的——模塊搜索路徑
13.3 大模塊——包的定義與應用
13.3.1 什么是“包”
13.3.2 如何定義包
13.3.3 包的使用
13.4 歸納和總結
思考與實踐
第14章 文件與數(shù)據(jù)格式化
14.1 文件及其操作
14.1.1 文件的概述
14.1.2 打開文件——open()函數(shù)
14.1.3 文件打開舉例
14.1.4 讀文件
14.1.5 寫文件
14.1.6 文件指針及其移動
14.1.7 關閉文件
14.2 文件的應用舉例——詞頻統(tǒng)計
14.2.1 英文文獻的詞頻統(tǒng)計
14.2.2 jieba模塊與中文文獻的詞頻統(tǒng)計
14.3 CSV文件與JSON文件的操作
14.3.1 CSV格式文件及其操作
14.3.2 JSON格式文件及其操作
14.4 歸納與補充
14.4.1 關于文件的幾點注意
14.4.2 文件的迭代
思考與實踐
第15章 面向?qū)ο笈c類——讓程序更人性化
15.1 面向?qū)ο笈c類
15.1.1 面向過程的程序設計
15.1.2 面向?qū)ο蟮某绦蛟O計
15.1.3 類(Class)
15.2 類的定義
15.2.1 類的定義
15.2.2 靜態(tài)方法、類方法與類變量
15.2.3 私有屬性和私有方法
15.3 類的使用
15.3.1 不帶默認屬性的類及其使用
15.3.2 帶默認參數(shù)的類及其使用
15.3.3 類的組合使用
15.4 類的封裝性
15.4.1 什么是封裝
15.4.2 如何封裝
15.5 類的繼承性
15.5.1 什么是繼承
15.5.2 類的單繼承
15.5.3 構造函數(shù)的繼承
15.5.4 類的多繼承
15.5.5 類的多級繼承
15.5.6 類的混合繼承
15.6 類的多態(tài)性
15.6.1 什么是多態(tài)性
15.6.2 多態(tài)性舉例
15.7 從模塊中導入類
15.8 歸納與總結
15.8.1 類方法的屬性化
15.8.2 關于內(nèi)置變量__mro__
15.8.3 issubclass()與isinstance()
15.8.4 dir()
思考與實踐
第16章 異常處理讓程序健壯
16.1 錯誤與異常
16.1.1 錯誤(Error)
16.1.2 異常(Exception)
16.1.3 常見的標準異常
16.1.4 自定義異常
16.1.5 為什么要進行異常處理
16.2 異常處理的一般方法——try語句
16.2.1 try語句的一般語法
16.2.2 try語句的執(zhí)行過程分析
16.3 異常處理的特殊方法——with語句
16.3.1 上下文管理
16.3.2 為什么要使用with語句
16.3.3 with語句的一般形式
16.3.4 with語句的工作機理
16.3.5 自定義上下文管理器
16.3.6 以Socket通信舉例說明上下文管理器的定義
16.4 歸納與補充
16.4.1 關于try
16.4.2 關于異常的其他問題
16.4.3 關于Socket通信的再說明
思考與實踐
第三篇 實戰(zhàn)演習
第17章 桌面小游戲——剪刀石頭布
17.1 圖形化人機界面GUI及其應用
17.2 基于GUI的剪刀石頭布游戲的算法與類的設計
17.2.1 算法設計
17.2.2 類的設計
17.2.3 計算機出拳的實現(xiàn)
17.2.4 最高得分的保存與讀取
17.2.5 圖形化界面
17.2.6 按鍵與鼠標的捕捉與處理
17.3 編輯程序
17.3.1 新建PyCharm工程
17.3.2 完整的源程序
17.3.3 程序運行效果
17.4 歸納與總結
17.4.1 設置解釋器時出現(xiàn)“Cannot Save Setting”錯誤及其解決
17.4.2 將代碼生成可執(zhí)行文件
思考與實踐
第18章 數(shù)據(jù)挖掘與分析——Bilibili視頻爬蟲
18.1 數(shù)據(jù)挖掘與網(wǎng)絡爬蟲
18.1.1 數(shù)據(jù)挖掘
18.1.2 網(wǎng)絡爬蟲
18.1.3 網(wǎng)絡爬蟲的基本原理
18.1.4 實現(xiàn)網(wǎng)絡爬蟲的關鍵技術
18.1.5 爬蟲的基本框架
18.1.6 反爬與Robots協(xié)議
18.2 Python網(wǎng)絡爬蟲的開發(fā)平臺與環(huán)境
18.3 爬蟲的案例——B站網(wǎng)絡爬蟲
18.3.1 功能與設計要求
18.3.2 目標URL和應用接口的獲取
18.3.3 舉例:如何快速找到B站全站視頻信息的公共接口——api
18.3.4 算法與流程圖
18.3.5 多進程與多線程的選擇
18.3.6 完整程序代碼
18.4 歸納與總結
18.4.1 關于requests中get方法的幾點注意事項
18.4.2 爬蟲尺寸
18.4.3 反爬蟲技術
思考與實踐
第19章 圖像識別與機器學習——字符型驗證碼自動識別
19.1 機器視覺與機器學習
19.1.1 機器視覺
19.1.2 機器學習
19.1.3 機器學習與神經(jīng)網(wǎng)絡
19.2 Tensorflow及其卷積神經(jīng)網(wǎng)絡
19.2.1 Tensorflow及其介紹
19.2.2 TensorFlow的程序舉例
19.2.3 基于TensorFlow的卷積神經(jīng)網(wǎng)絡
19.3 字符型驗證碼的自動識別
19.3.1 字符型驗證碼
19.3.2 自動識別字符型驗證碼的兩種方法
19.4 字符型驗證碼自動識別程序的實現(xiàn)
19.4.1 字符型驗證碼自動識別程序的算法設計
19.4.2 字符型驗證碼自動識別程序架構
19.4.3 字符型驗證碼自動識別程序
19.4.4 程序運行結果及其分析
19.5 歸納與小結
19.5.1 關于CNN模型
19.5.2 關于TensorFlow的一些問題
19.5.3 關于深度學習框架的問題
思考與實踐
第20章 智能控制——基于串口控制的二極管花樣顯示
20.1 項目的設計目標
20.1.1 項目設計要求
20.1.2 串口及其設置
20.2 Pyboard開發(fā)板及其應用
20.2.1 Pyboard板
20.2.2 Pyboard板的安裝
20.2.3 Pyboard板的控制方式
20.2.4 Pyboard板與上位機的串口通信測試
20.3 發(fā)光二極管顯示板
20.4 項目的算法及其分析
20.4.1 上位機程序的算法
20.4.2 下位機程序的算法
20.5 項目的程序
20.5.1 上位機程序
20.5.2 下位機程序
20.6 實際運行效果及其分析
20.6.1 樣機及其運行演示
20.6.2 程序運行要點
20.6.3 Pyboard板的資源
20.6.4 歸納與小結
思考與實踐
第四篇 繼續(xù)前進
第21章 程序的調(diào)試、測試與assert斷言
21.1 程序的調(diào)試與測試
21.1.1 調(diào)試程序的方法
21.1.2 使用Python內(nèi)置單步調(diào)試器(Pdb)調(diào)試程序
21.1.3 利用IDE集成開發(fā)環(huán)境調(diào)試程序
21.2 測試程序的方法
21.2.1 為什么要對程序進行測試
21.2.2 通過unittest實現(xiàn)一般測試
21.2.3 使用TestSuite進行測試
21.3 歸納與小結
思考與實踐
第22章 Python程序的打包與發(fā)布
22.1 為什么要將程序打包
22.2 如何將程序打包
22.2.1 打包成.pyc文件
22.2.2 Python程序的運行過程
22.2.3 打包成.exe文件
22.3 歸納與小結
思考與實踐
第23章 Python那些不得不說的事情
23.1 如何使程序更Pythonic
23.1.1 Python程序的基本原則
23.1.2 交換變量值(Swap Values)
23.1.3 合并字符串
23.1.4 使用關鍵字——in
23.1.5 Python的True值(Truth Values)
23.1.6 Enumerate——索引和元素(Index & Item)
23.1.7 Python方法中參數(shù)的默認值
23.2 迭代器(Iterator)
23.2.1 迭代器
23.2.2 列表生成式(List Comprehensions)
23.3 生成器(Generator)
23.3.1 生成器
23.3.2 yield及其使用
23.4 歸納與小結
思考與實踐