本書系統(tǒng)介紹Python基礎(chǔ)知識以及數(shù)據(jù)采集、分析、可視化的流程與應(yīng)用,實例豐富,實戰(zhàn)性強。全書共14個項目,其中前10個項目以Python基礎(chǔ)知識的理解和應(yīng)用為主,項目11~項目14分別講解網(wǎng)絡(luò)爬蟲以及NumPy、Pandas和Matplotlib的應(yīng)用。書中全部代碼適用于Python 3.6/3.7/3.8/3.9/3.10/3.11以及更高版本。
本書可以作為?啤⒏呗氃盒3绦蛟O(shè)計課程的教材,以及Python愛好者的自學用書。
★暢銷經(jīng)典全新升級:配備100個微課視頻,融入思政教學元素。
★全部代碼適用于Python 3.6/3.7/3.8/3.9/3.10/3.11以及更高版本。
★配套資源:微課視頻、PPT、程序源代碼、教學大綱、習題及習題答案、在線練習軟件。
Python語言由Guido van Rossum于1991年推出了第一個公開發(fā)行版本,之后迅速得到了各行業(yè)人士的青睞。經(jīng)過30多年的發(fā)展,Python語言已經(jīng)滲透到統(tǒng)計分析、移動終端開發(fā)、科學計算可視化、系統(tǒng)安全、逆向工程、軟件測試與軟件分析、圖形圖像處理、人工智能、機器學習、深度學習等幾乎所有專業(yè)和領(lǐng)域。與此同時,Python語言在各大編程語言排行榜上的位次也是逐年上升的,被TIOBE網(wǎng)站評為2007、2010、2018、2020、2021年年度語言;在IEEE Spectrum編程語言排行榜上自2017年開始每年都名列榜首。
Python是一門免費、開源、跨平臺的高級動態(tài)編程語言,支持命令式編程、函數(shù)式編程,完全支持面向?qū)ο蟪绦蛟O(shè)計,擁有大量功能強大的內(nèi)置對象、標準庫,以及涉及各行業(yè)領(lǐng)域的擴展庫,使得各領(lǐng)域的工程師、科研人員、策劃人員和管理人員能夠快速實現(xiàn)和驗證自己的思路、創(chuàng)意或者推測,還有更多人喜歡用Python編寫腳本來完成工作中的一些小任務(wù)。在有些編程語言中需要編寫大量代碼才能實現(xiàn)的功能,在Python中只需要幾行代碼,大幅度減少了代碼量,更加容易維護。Python用戶只需要把主要精力放在業(yè)務(wù)邏輯的設(shè)計與實現(xiàn)上,在開發(fā)速度和運行效率之間達到了完美的平衡,其精妙之處令人擊節(jié)贊嘆。
一個好的Python程序不僅是正確的,更應(yīng)該是簡潔、直觀、漂亮、優(yōu)雅、方便人們閱讀的,整個代碼處處體現(xiàn)著美,讓人賞心悅目。Python代碼對布局要求非常嚴格,尤其是使用縮進來體現(xiàn)代碼的邏輯關(guān)系,這一硬性要求非常有利于學習者和程序員養(yǎng)成一個良好、嚴謹?shù)牧晳T。除了能夠快速解決問題之外,代碼布局要求嚴格也是Python被廣泛選作教學語言的重要原因。
為推進黨的二十大精神進教材、進課堂、進頭腦,編者緊跟行業(yè)理念、技術(shù)發(fā)展和社會對人才的實際需求,本次改版除優(yōu)化內(nèi)容外,還在每章的培養(yǎng)目標中增加了素養(yǎng)目標的內(nèi)容,以Python程序設(shè)計與應(yīng)用為載體,旨在培養(yǎng)學生的家國情懷、民族自豪感,增強文化自信,提高創(chuàng)新思維、動手實踐能力,優(yōu)化代碼與安全編碼的意識,培養(yǎng)精益求精的工匠精神,遵守大數(shù)據(jù)倫理學與相關(guān)職業(yè)道德等。
內(nèi)容組織與閱讀建議
本書共14個項目和若干子任務(wù),主要包括Python編程基礎(chǔ)、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析和數(shù)據(jù)可視化四大部分內(nèi)容,全部代碼適用于Python 3.6/3.7/3.8/3.9/3.10/3.11以及更高版本。
項目 1 搭建和使用Python開發(fā)環(huán)境。簡單介紹Python語言與版本、安裝與配置Python開發(fā)環(huán)境、Python編碼規(guī)范、擴展庫安裝方法,以及標準庫對象與擴展庫對象的導入。
項目 2 使用內(nèi)置對象和運算符。講解Python常用內(nèi)置對象、運算符、常用內(nèi)置函數(shù)、Python關(guān)鍵字。
項目 3 使用列表、元組、字典、集合。講解列表、元組與生成器表達式、字典、集合、序列解包。
項目 4 使用程序控制結(jié)構(gòu)。講解條件表達式的常見形式,單分支、雙分支、多分支選擇結(jié)構(gòu)及嵌套的選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu),包括for循環(huán)與while循環(huán),break與continue語句;以及異常處理結(jié)構(gòu)。
項目 5 設(shè)計和使用自定義函數(shù)。講解函數(shù)定義與調(diào)用語法、不同類型的函數(shù)參數(shù)、參數(shù)傳遞的序列解包、變量作用域、lambda表達式、生成器函數(shù)。
項目 6 面向?qū)ο蟪绦蛟O(shè)計。講解類的定義與使用、數(shù)據(jù)成員與成員方法、繼承、特殊方法。
項目 7 使用字符串。講解字符串編碼格式、轉(zhuǎn)義字符與原始字符串、字符串格式化的不同形式、字符串常用方法、字符串常量、中英文分詞、漢字到拼音的轉(zhuǎn)換。
項目 8 使用正則表達式。講解正則表達式語法、正則表達式模塊re的用法。
項目 9 讀寫文件內(nèi)容。講解文件操作基本知識、文本文件內(nèi)容操作,以及Excel與Word等常見類型文件的操作。
項目 10 文件與文件夾操作。講解os、os.path與shutil等模塊的用法,以及遞歸遍歷文件夾和按廣度優(yōu)先遍歷文件夾的原理。
項目 11 網(wǎng)絡(luò)爬蟲入門與應(yīng)用。講解HTML與JavaScript基礎(chǔ),以及urllib、ScraPy、beautifulsoup4、requests、Selenium在網(wǎng)絡(luò)爬蟲程序中的應(yīng)用。
項目 12 使用NumPy實現(xiàn)數(shù)組與矩陣運算。講解NumPy的數(shù)組和矩陣運算。
項目 13 使用Pandas分析與處理數(shù)據(jù)。講解Pandas常用操作、Pandas結(jié)合Matplotlib進行數(shù)據(jù)可視化、Pandas的應(yīng)用。
項目 14 使用Matplotlib進行數(shù)據(jù)可視化。介紹使用Python擴展庫Matplotlib進行數(shù)據(jù)可視化相關(guān)的技術(shù),包括折線圖、散點圖、餅狀圖、柱狀圖、三維圖的繪制,以及切分繪圖區(qū)域、設(shè)置坐標軸和圖例等內(nèi)容。
本書適用讀者
本書是機械工業(yè)出版社組織出版的高等職業(yè)教育系列教材之一。本書可以作為(但不限于)?、高職院校程序設(shè)計課程的教材,也可作為Python愛好者的自學用書。
配套資源
本書提供教學PPT、源代碼、大綱、習題答案、微課視頻等全套教學資源,可通過微信公眾號Python小屋獲取,或發(fā)送郵件至dongfuguo2005@126.com與作者聯(lián)系獲;也可通過機械工業(yè)出版社相應(yīng)渠道獲。ㄒ姲鏅(quán)頁內(nèi)容簡介)。另外,本書還提供了課程思政講解視頻,可掃描下面的二維碼觀看。
致謝
首先感謝父母的養(yǎng)育之恩,在當年那么艱苦的條件下還堅決支持我讀書,沒有讓我像有些同齡的孩子一樣輟學。感謝姐姐、姐夫多年來對我的愛護,以及在老家對父母的照顧,感謝善良的弟弟、弟媳在老家對父母的照顧。當然,最應(yīng)該感謝的是妻子和孩子對我這個工作狂人的理解和體諒。
感謝每一位讀者,感謝您在茫茫書海中選擇了本書,衷心祝愿您能夠從本書中受益,學到真正需要的知識。同時也期待每一位讀者的熱心反饋,隨時歡迎您指出書中的不足,并通過微信公眾號Python小屋或電子郵箱dongfuguo2005@126.com與作者溝通和交流。
董付國,山東省一流本科課程Python應(yīng) 用開發(fā)(線上線下混合)、Python程序設(shè) 計基礎(chǔ)(線上)負責人,華為技術(shù)有限公司 獨立顧問,山東省高等教育教材作者,機 械工業(yè)出版社計算機分社成立20周年金牌作 者,機械工業(yè)出版社高等教育教材專家咨詢 委員會委員,機械工業(yè)出版社面向新工科高 等院校大數(shù)據(jù)專業(yè)系列教材編審委員會委 員,全國高等院校計算機基礎(chǔ)教育研究會教 育信息化專業(yè)委員會委員。出版的《Python 程序設(shè)計基礎(chǔ)與應(yīng)用》《Python程序設(shè)計實例 教程》等多部教材被國內(nèi)近千所高校選用,累 計印刷超過140次;擁有國家發(fā)明專利1項,軟 件著作權(quán)1項;兩次入選中國大數(shù)據(jù)創(chuàng)新百人 榜單;長期維護微信公眾號Python小屋 并免費分享1200多篇Python技術(shù)文章和超過 600節(jié)微課視頻,智慧樹慕課被評為平臺 TOP100,騰訊云 社區(qū)作者。
前言
二維碼資源清單
項目1 搭建和使用Python開發(fā)環(huán)境1
任務(wù)1.1 了解Python語言特點、應(yīng)用場景和版本1
任務(wù)1.2 安裝與配置Python開發(fā)環(huán)境2
1.2.1 安裝與使用IDLE3
1.2.2 安裝與使用Anaconda 34
任務(wù)1.3 了解Python編程規(guī)范5
任務(wù)1.4 安裝擴展庫6
任務(wù)1.5 詞頻統(tǒng)計 導入與使用標準庫、擴展庫中的對象7
習題9
項目2 使用內(nèi)置對象和運算符10
任務(wù)2.1 了解Python常用內(nèi)置對象10
2.1.1 常量與變量11
2.1.2 數(shù)字類型12
2.1.3 字符串13
2.1.4 列表、元組、字典、集合13
2.1.5 函數(shù)14
任務(wù)2.2 掌握Python運算符14
2.2.1 算術(shù)運算符16
2.2.2 關(guān)系運算符17
2.2.3 元素測試運算符17
2.2.4 集合運算符17
2.2.5 邏輯運算符18
2.2.6 賦值分隔符18
任務(wù)2.3 打字練習程序 使用Python內(nèi)置函數(shù)19
2.3.1 類型轉(zhuǎn)換與判斷22
2.3.2 最值與求和24
2.3.3 基本輸入/輸出25
2.3.4 排序與逆序26
2.3.5 枚舉與迭代26
2.3.6 map()函數(shù)、reduce()函數(shù)、filter()函數(shù)27
2.3.7 range()函數(shù)28
2.3.8 zip()函數(shù)29
2.3.9 任務(wù)實施打字練習程序29
任務(wù)2.4 了解Python關(guān)鍵字30
習題31
項目3 使用列表、元組、字典、集合33
任務(wù)3.1 了解Python容器對象33
任務(wù)3.2 查詢學生成績 使用列表33
3.2.1 列表創(chuàng)建與刪除34
3.2.2 訪問列表元素34
3.2.3 列表常用方法35
3.2.4 列表對象支持的運算符36
3.2.5 內(nèi)置函數(shù)對列表的操作37
3.2.6 列表推導式38
3.2.7 切片40
3.2.8 任務(wù)實施查詢學生成績40
任務(wù)3.3 使用元組與生成器表達式41
3.3.1 元組創(chuàng)建與元素訪問41
3.3.2 元組與列表的異同點42
3.3.3 生成器表達式42
任務(wù)3.4 詞頻統(tǒng)計 使用字典43
3.4.1 字典的創(chuàng)建與刪除44
3.4.2 字典元素的訪問44
3.4.3 元素的添加、修改與刪除45
3.4.4 任務(wù)實施詞頻統(tǒng)計46
任務(wù)3.5 電影推薦與無效評論過濾 使用集合47
3.5.1 集合對象的創(chuàng)建與刪除47
3.5.2 集合的操作與運算47
3.5.3 集合應(yīng)用案例48
任務(wù)3.6 小明爬樓梯 理解序列解包51
習題53
項目4 使用程序控制結(jié)構(gòu)55
任務(wù)4.1 理解條件表達式的值與True/False的等價關(guān)系55
任務(wù)4.2 使用選擇結(jié)構(gòu)57
4.2.1 程序員買包子使用單分支選擇結(jié)構(gòu)57
4.2.2 雞兔同籠問題使用雙分支選擇結(jié)構(gòu)58
4.2.3 成績轉(zhuǎn)換使用多分支選擇結(jié)構(gòu)58
4.2.4 成績轉(zhuǎn)換使用嵌套的選擇結(jié)構(gòu)59
任務(wù)4.3 使用循環(huán)結(jié)構(gòu)60
4.3.1 斐波那契數(shù)列與九九乘法表使用while循環(huán)與for循環(huán)60
4.3.2 求100以內(nèi)的最大素數(shù)使用break與continue語句61
任務(wù)4.4 計算平均分 使用異常處理結(jié)構(gòu)62
任務(wù)4.5 程序控制結(jié)構(gòu)應(yīng)用案例63
習題67
項目5 設(shè)計和使用自定義函數(shù)69
任務(wù)5.1 定義與調(diào)用函數(shù)69
5.1.1 斐波那契數(shù)列基本語法69
5.1.2 計算列表元素之和定義和使用遞歸函數(shù)70
任務(wù)5.2 理解函數(shù)參數(shù)71
5.2.1 位置參數(shù)71
5.2.2 默認值參數(shù)71
5.2.3 關(guān)鍵參數(shù)72
5.2.4 可變長度參數(shù)72
5.2.5 傳遞參數(shù)時的序列解包73
任務(wù)5.3 統(tǒng)計小寫字母個數(shù) 理解局部變量和全局變量74
任務(wù)5.4 自定義排序規(guī)則 使用lambda表達式75
任務(wù)5.5 斐波那契數(shù)列 理解生成器函數(shù)76
任務(wù)5.6 函數(shù)應(yīng)用案例76
習題85
項目6 面向?qū)ο蟪绦蛟O(shè)計86
任務(wù)6.1 自定義棧 定義與使用類86
任務(wù)6.2 自定義三維向量類 理解數(shù)據(jù)成員與成員方法89
6.2.1 私有成員與公有成員89
6.2.2 數(shù)據(jù)成員90
6.2.3 成員方法90
6.2.4 屬性91
6.2.5 任務(wù)實施三維向量類93
任務(wù)6.3 定義Teacher類 理解和使用繼承95
任務(wù)6.4 模擬雙端隊列 理解特殊方法工作原理97
習題101
項目7 使用字符串102
任務(wù)7.1 認識字符串102
7.1.1 字符串編碼格式102
7.1.2 實現(xiàn)進度條使用轉(zhuǎn)義字符與原始字符串103
任務(wù)7.2 理解字符串格式化104
7.2.1 使用%符號進行格式化104
7.2.2 使用format()方法進行格式化106
7.2.3 格式化的字符串常量106
任務(wù)7.3 考試系統(tǒng)客觀題自動判卷 熟悉字符串常用方法與操作107
7.3.1 find()、rfind()、index()、rindex()、count()107
7.3.2 split()、rsplit()108
7.3.3 join()108
7.3.4 lower()、upper()、capitalize()、title()、swapcase()109
7.3.5 replace()、maketrans()、translate()109
7.3.6 strip()、rstrip()、lstrip()110
7.3.7 startswith()、endswith()110
7.3.8 isalnum()、isalpha()、isdigit()、isspace()、isupper()、islower()110
7.3.9 center()、ljust()、rjust()111
7.3.10 字符串支持的運算符111
7.3.11 適用于字符串的內(nèi)置函數(shù)112
7.3.12 字符串切片112
7.3.13 任務(wù)實施考試系統(tǒng)客觀題自動判卷113
任務(wù)7.4 生成隨機密碼與密碼安全性檢查 使用字符串常量114
任務(wù)7.5 垃圾郵件過濾機制對抗 中英文分詞與中文拼音處理115
任務(wù)7.6 漢字到拼音的轉(zhuǎn)換116
習題117
項目8 使用正則表達式118
任務(wù)8.1 理解正則表達式語法118
任務(wù)8.2