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