《Python程序設計從基礎到應用》系統(tǒng)介紹了Python語言的語法基礎知識,包括Python基本數據類型、程序控制結構、組合數據類型、函數與模塊、類和對象、文件,以及Python常用標準庫;并圍繞Python網絡爬蟲、Python數據分析、Python票據識別的具體實例,詳細介紹了Python第三方庫的相關應用,闡述其應用程序的開發(fā)方法和過程,實現知識到能力的進階。
《Python程序設計從基礎到應用》第1~9章為Python學習的基礎內容部分,夯實基礎,萬丈高樓方能有望。第10~12章為Python學習的應用和提高部分,遴選有趣且實用的案例,通過翔實的講解和豐富的代碼案例帶領讀者充分領略Python的強大之處。
《Python程序設計從基礎到應用》既可作為高等學校程序設計類課程的教材,也適用于初學Python語言的讀者,還可作為全國計算機等級考試二級Python語言程序設計的參考書。
《Python程序設計從基礎到應用》內容豐富、循序漸進,是江蘇省一流本科課程Python程序設計從基礎到應用(中國大學MOOC)的配套用書。
《Python程序設計從基礎到應用》配有電子課件、混合式教學方案,適合開展線上線下混合式教學,每章配有習題,以指導讀者深入地進行學習。
Python自誕生始,高效的編程語言簡潔的編程語言干凈優(yōu)雅簡單易用的編程語言等一眾詞匯便伴隨在其左右;更甚之,Python語言在2021年度TIOBE編程語言排行榜中位列第一。學生在學習的時候能清晰地體會和感受Python語言的特質嗎?能將Python語言的優(yōu)勢充分掌握并為己所用嗎?
編者深耕高校計算機學科教育多年,對于學生理論應試能力充沛而動手實戰(zhàn)能力欠缺等弊端深有感悟。然而,課程設置往往只有小半部分課時用于實踐教學,但內容單一,形式呆板,所見成效不高。課程結束,相關理論知識往往被學生束之高閣,鮮再接觸。能否將基礎的實踐內容和商業(yè)應用的實際案例融合,更好、更生動地引導學生實踐,這個念頭一直縈繞于編者心頭。
為此,編者將Python程序設計的知識內容,按照從基礎到應用的過程循序漸進地進行了編排,實現網絡爬蟲、數據處理、圖像識別等進階應用,希望能帶領學生在理論和實踐領域更好、更直觀地領略Python的魅力與精彩。
古語有云師者,傳道授業(yè)解惑也,編者認為,其中三者皆重要,理論實踐教學為授業(yè),課后答疑為解惑,其中最為重要的應該為傳道。通過傳道能夠讓學生潛心并喜愛上這門課程、這項技術,能夠在授業(yè)范圍之外,自由地、自主地開辟自己學習的內容,這才應該是高校教育的根本之道。希冀本書能成為師者傳道授業(yè)解惑的工具,更能成為學生成長的階梯,從而真心喜愛上計算機學科,一路披荊斬棘,勇攀高峰。
《Python程序設計從基礎到應用》內容豐富、循序漸進,是江蘇省一流本科課程Python程序設計從基礎到應用(中國大學MOOC)的配套用書。建議讀者借助在線開放課程平臺,深入學習本書內容。本書配有混合式教學方案,適合開展線上線下混合式教學。每章配有習題,以指導讀者深入地進行學習。
《Python程序設計從基礎到應用》由袁紅娟任主編,李生、李金海任副主編,參加本書編寫工作的還有彭海靜、仲崇高、孫劍、酈麗、花麗、蔣輝芹等老師。感謝王會濤、茍俊同學對本書所有案例進行了調試。
由于時間倉促,書中難免存在不妥之處,請讀者見諒,并提出寶貴意見。
編 者
目 錄
前言
第1章 Python語言概述1
1.1 程序設計語言1
1.1.1 程序設計語言發(fā)展1
1.1.2 編譯與解釋2
1.2 Python語言簡介2
1.2.1 Python的歷史2
1.2.2 Python的應用3
1.3 程序設計基本方法3
1.3.1 程序設計的IPO模式4
1.3.2 程序編寫的步驟4
1.3.3 結構程序設計的基本方法6
1.4 Python語法6
1.4.1 Python語法元素6
1.4.2 Python程序書寫規(guī)范7
1.4.3 Python語言的特點8
1.5 Python輸入/輸出8
1.5.1 輸入函數:input()8
1.5.2 eval()函數9
1.5.3 輸出函數:print()9
1.5.4 字符串的format()方法10
1.5.5 format()方法的格式控制11
1.6 Python的安裝和運行12
1.6.1 Python開發(fā)環(huán)境的安裝12
1.6.2 Python程序的運行13
1.7 習題15
第2章 基本數據類型17
2.1 變量17
2.1.1 變量定義17
2.1.2 刪除變量19
2.1.3 變量命名規(guī)則20
2.2 基本數據類型20
2.2.1 數字21
2.2.2 字符串23
2.3 運算符和表達式26
2.3.1 算術運算符26
2.3.2 常用數學函數27
2.3.3 賦值運算符30
2.3.4 關系運算符31
2.3.5 邏輯運算符32
2.3.6 位運算符33
2.3.7 表達式34
2.4 習題36
第3章 程序控制結構38
3.1 算法與流程圖38
3.1.1 算法38
3.1.2 用流程圖描述算法39
3.1.3 程序的三種基本結構39
3.1.4 順序結構程序設計40
3.2 選擇結構程序設計41
3.2.1 單分支結構41
3.2.2 雙分支結構42
3.2.3 多分支結構43
3.2.4 選擇結構的嵌套45
3.3 循環(huán)結構程序設計46
3.3.1 遍歷循環(huán)46
3.3.2 條件循環(huán)48
3.3.3 break語句50
3.3.4 continue語句51
3.3.5 循環(huán)結構的嵌套51
3.4 異常處理52
3.4.1 try…except語句53
3.4.2 try…except…else語句54
3.4.3 try…except…finally語句55
3.5 應用實例56
3.5.1 書店銷售策略56
3.5.2 九九乘法表56
3.5.3 計算圓周率的近似值57
3.5.4 求乒乓球比賽對手名單57
3.5.5 猜數字游戲58
3.6 習題59
第4章 組合數據類型61
4.1 列表61
4.1.1 列表的基本操作62
4.1.2 列表的常用函數66
4.1.3 列表常用的操作方法67
4.2 元組71
4.2.1 元組的基本操作71
4.2.2 元組的常用函數73
4.2.3 元組的方法73
4.2.4 元組與列表的區(qū)別74
4.3 字符串75
4.3.1 字符串的基本操作75
4.3.2 字符串的常用函數77
4.3.3 字符串的方法78
4.4 集合81
4.4.1 集合的基本操作81
4.4.2 集合運算82
4.4.3 集合的常用函數及方法83
4.5 字典84
4.5.1 字典的基本操作84
4.5.2 字典的常用函數及方法85
4.5.3 字典的遍歷87
4.6 應用實例88
4.6.1 日期計算88
4.6.2 二分法查找89
4.6.3 約瑟夫環(huán)問題90
4.6.4 刪除列表相關元素92
4.6.5 統(tǒng)計單詞個數93
4.6.6 英文詞頻統(tǒng)計94
4.6.7 愷撒密碼加密95
4.7 習題96
第5章 函數與模塊98
5.1 函數概述98
5.2 函數的定義與調用99
5.2.1 函數的定義99
5.2.2 函數的調用99
5.2.3 函數調用處理過程100
5.2.4 無參函數與有參函數100
5.2.5 函數的返回值101
5.3 函數的參數傳遞102
5.3.1 形式參數與實際參數102
5.3.2 引用和對象102
5.3.3 參數傳遞103
5.4 不同類型的參數104
5.4.1 位置參數104
5.4.2 關鍵字參數105
5.4.3 可選參數106
5.4.4 可變長位置參數107
5.4.5 可變長關鍵字參數107
5.5 匿名函數108
5.6 遞歸函數109
5.6.1 遞歸函數的定義109
5.6.2 遞歸的求解110
5.7 變量的作用域110
5.7.1 簡單數據類型變量作用域110
5.7.2 組合數據類型變量作用域111
5.8 模塊112
5.8.1 模塊的定義112
5.8.2 導入模塊113
5.9 應用實例114
5.9.1 計算中獎概率114
5.9.2 統(tǒng)計素數個數116
5.9.3 斐波那契數列117
5.9.4 發(fā)紅包游戲程序118
5.9.5 學生管理系統(tǒng)程序119
5.10 習題122
第6章 類和對象123
6.1 面向對象的概念123
6.1.1 類和對象的概念123
6.1.2 面向對象程序設計基本特征123
6.2 類的定義和對象的創(chuàng)建124
6.2.1 利用內置的類創(chuàng)建對象124
6.2.2 定義自己的類125
6.2.3 利用自定義的類創(chuàng)建對象126
6.2.4 類屬性與實例屬性127
6.2.5 類的特殊方法128
6.3 類的繼承和多態(tài)130
6.3.1 類的繼承130
6.3.2 多態(tài)與方法重載131
6.4 應用實例:平面圖形計算133
6.5 習題135
第7章 文件136
7.1 文件概述136
7.1.1 文件與文件路徑136
7.1.2 Python中的文件操作136
7.2 打開文件137
7.2.1 open()函數137
7.2.2 文件對象常用的屬性138
7.3 關閉文件139
7.3.1 close()函數139
7.3.2 with as 自動資源管理140
7.4 讀取文件140
7.4.1 read()函數140
7.4.2 readline()和readlines()函數142
7.4.3 遍歷文件143
7.5 文件寫入143
7.5.1 write() 函數143
7.5.2 writelines()函數144
7.6 文件定位145
7.6.1 tell() 函數145
7.6.2 seek()函數146
7.7 CSV格式文件操作147
7.7.1 CSV 文件概述147
7.7.2 一維數據的讀寫148
7.7.3 二維數據的讀寫149
7.8 csv模塊150
7.8.