Python語言具有高效率、可移植、可擴展、可嵌入、易于維護等優(yōu)點,而且Python語法簡潔,代碼高度規(guī)范,功能強大且簡單易學,是程序開發(fā)人員必學的語言之一。
本書注重基礎、循序漸進、內容豐富、結構合理、思路清晰、語言簡練流暢、示例翔實,系統(tǒng)地講述了Python程序設計開發(fā)相關基礎知識。全書共10章,主要內容包括Python概述、Python基本語法、Python的基本流程控制、Python的4種典型序列結構、Python函數(shù)與函數(shù)式編程、Python文件和數(shù)據(jù)庫操作、面向對象程序設計、模塊和包、字符串操作與正則表達式應用,以及并發(fā)、并行與多任務編程等內容。
為提升學習效果,本書結合實際應用,提供了大量的案例,并配以完善的學習資料和支持服務,包括教學大綱、教學PPT、源代碼、教學視頻、配套軟件等,為讀者帶來全方位的學習體驗。
本書既可作為高等學校計算機相關專業(yè)Python程序設計課程的教材,也可作為自學者使用的參考用書,是一本適用于Python程序開發(fā)初學者的入門教材。
本書既可作為高等學校計算機相關專業(yè)Python程序設計課程的教材,也可作為自學者使用的參考用書,是一本適用于Python程序開發(fā)初學者的入門教材。為提升學習效果,本書結合實際應用,提供了大量的案例,并配以完善的學習資料和支持服務,包括教學PPT、教學大綱、源代碼、教學視頻、配套軟件等,為讀者帶來全方位的學習體驗。
Python語言于20世紀90年代初由荷蘭人Guido van Rossum首次公開發(fā)布,經(jīng)過歷次版本的修正,不斷演化改進,目前已成為最受歡迎的程序設計語言之一。近年來,Python語言多次登上諸如TIOBE、PYP、StackOverFlow、GitHub、Indeed、Glassdoor等各大編程語言社區(qū)排行榜。根據(jù)TIOBE最新排名,Python語言與Java、C語言一起成為全球最流行編程語言的前3位。
Python語言之所以如此受歡迎,其主要原因是它擁有簡潔的語法、良好的可讀性以及功能的可擴展性。在各高校及各行業(yè)應用層面,采用Python語言做教學、科研、應用開發(fā)的機構日益增多。在高校方面,一些國際知名大學采用Python語言來教授程序設計課程,典型的有麻省理工學院的計算機科學及編程導論、美國卡耐基梅隆大學的編程基礎、加州大學伯克利分校的人工智能課程。在行業(yè)應用方面,Python語言已經(jīng)滲透到數(shù)據(jù)分析、互聯(lián)網(wǎng)開發(fā)、工業(yè)智能化、游戲開發(fā)等重要的工業(yè)應用領域。鑒于Python語言的上述諸多優(yōu)點,受到諸多學習者的熱捧。
本書的編寫原則如下。
(1)適應原則。Python語言有自己獨特的語法以及編程方式,在編程語言的大框架下,分析這些編程語言的細節(jié)差異,使讀者能夠很好地適應Python語言的學習。
(2)科學原則。本書既是知識產(chǎn)品的再生產(chǎn)、再創(chuàng)造,也是編者教學經(jīng)驗的總結和提高,其覆蓋范圍廣、內容新,既有面的鋪開,又有點的深化,舉例符合題意,使讀者學習起來事半功倍。
本書從基礎和實踐兩個層面引導讀者學習Python語言這門學科,系統(tǒng)、全面地討論了Python語言編程的思想和方法。第1~3章主要介紹了Python語言的基本知識以及理論基礎。第4~8章詳細介紹了Python語言編程的核心技術,著眼于控制語句與函數(shù)、模塊和包、類和繼承、文件和I/O的重點知識使用場景以及注意事項的描述,每一個章節(jié)都給出了詳細的Python語言程序,讓讀者全面理解Python語言編程。第7章是程序開發(fā)的進階,著重介紹了抽象類、多繼承等知識點,并針對每一個知識點給出了詳細的例子。第9章重點介紹了正則表達式,并針對每一個知識點給出相關示例。第10章介紹了并發(fā)、并行與多任務編程的基本概念以及提高程序執(zhí)行效率的實現(xiàn)方法。
由于編者水平有限,加之Python語言的發(fā)展日新月異,書中難免會有疏漏和不妥之處,敬請廣大讀者批評指正。
編者
2025年1月
第1章Python概述/1
1.1認識Python語言1
1.1.1計算機與編程語言1
1.1.2Python的發(fā)展歷程2
1.1.3Python的特點3
1.1.4Python的應用領域與發(fā)展趨勢4
1.2Windows下的Python開發(fā)環(huán)境5
1.2.1常見的Python開發(fā)工具5
1.2.2Python的編程模式6
1.2.3Python開發(fā)運行環(huán)境安裝7
1.2.4使用IDLE編寫I Love Python!10
1.2.5PyCharm的安裝與使用12
1.3Python程序的運行原理20
1.3.1計算機程序的運行方式20
1.3.2Python程序的運行方式20
1.3.3Python的解釋器類型21
1.3.4Python語言的文件類型22
1.4本章小結23
1.5習題23
第2章Python基本語法/24
2.1Python程序設計的基本元素24
2.2Python語法特點26
2.3標識符與變量、常量27
2.3.1標識符與保留字27
2.3.2變量的定義與賦值28
2.3.3常量的定義32
2.4基本數(shù)據(jù)類型33
2.4.1數(shù)值類型33
2.4.2布爾類型34
2.4.3字符串類型35〖1〗Python程序設計基礎案例教程(第2版)目錄〖3〗〖3〗2.4.4NoneType類型37
2.4.5數(shù)據(jù)類型轉換37
2.4.6對象和引用39
2.5基本輸入/輸出40
2.5.1基于input()函數(shù)輸入40
2.5.2基于print()函數(shù)輸出41
2.5.3字符串的格式化輸出43
2.6常見的運算符與表達式45
2.6.1運算符與表達式45
2.6.2算術運算符47
2.6.3賦值運算符49
2.6.4關系運算符50
2.6.5邏輯運算符51
2.6.6條件(三目)運算符53
2.6.7位運算符53
2.6.8成員運算符54
2.6.9運算符的優(yōu)先級54
2.7本章小結55
2.8習題55
第3章Python的基本流程控制/56
3.1基本語句及順序結構56
3.1.1基本語句57
3.1.2順序結構58
3.2選擇結構語句59
3.2.1if語句59
3.2.2ifelse語句60
3.2.3ifelifelse語句61
3.2.4if分支語句嵌套63
3.3循環(huán)結構65
3.3.1while循環(huán)語句65
3.3.2for語句和內置函數(shù)range()67
3.3.3循環(huán)語句嵌套69
3.4轉移和中斷語句71
3.4.1break語句71
3.4.2continue語句73
3.4.3pass語句75
3.5whileelse與forelse語句75
3.5.1whileelse語句75
3.5.2forelse語句76
3.6程序的錯誤與異常處理77
3.6.1程序的錯誤與處理77
3.6.2程序的異常與處理77
3.7循環(huán)與選擇結構綜合應用案例79
3.8本章小結80
3.9習題80
第4章Python的4種典型序列結構/82
4.1序列82
4.1.1序列概述82
4.1.2序列的基本操作82
4.2列表86
4.2.1列表的創(chuàng)建與刪除86
4.2.2列表元素的訪問與遍歷87
4.2.3列表元素的常用操作(增加、刪除、修改、查找)90
4.2.4列表元素的統(tǒng)計與排序95
4.2.5列表的嵌套97
4.2.6列表的綜合應用97
4.3元組98
4.3.1元組的創(chuàng)建與刪除98
4.3.2元組的常見操作100
4.3.3元組的序列解包102
4.3.4元組與列表的區(qū)別及相互轉換102
4.3.5元組的綜合應用103
4.4字典103
4.4.1字典的創(chuàng)建104
4.4.2字典元素的訪問與遍歷106
4.4.3字典元素的常見操作(增加、刪除、修改、查找)107
4.4.4字典的綜合應用109
4.5集合110
4.5.1集合的創(chuàng)建111
4.5.2集合元素的常見操作(增加、刪除、查找)112
4.5.3集合的交集、并集和差集運算113
4.5.4集合的綜合應用113
4.6推導式與生成器推導式114
4.6.1列表推導式114
4.6.2字典推導式116
4.6.3集合推導式117
4.6.4元組的生成器推導式117
4.7綜合應用案例: 實現(xiàn)簡易版開心背單詞系統(tǒng)118
4.8本章小結120
4.9習題120
第5章Python函數(shù)與函數(shù)式編程/122
5.1函數(shù)的定義和調用122
5.1.1內置函數(shù)122
5.1.2自定義函數(shù)與調用123
5.1.3函數(shù)的返回值125
5.1.4函數(shù)的嵌套調用126
5.2函數(shù)的參數(shù)與值傳遞126
5.2.1函數(shù)的形參和實參127
5.2.2位置參數(shù)128
5.2.3關鍵字參數(shù)129
5.2.4默認參數(shù)130
5.2.5不定長可變參數(shù)130
5.2.6可變參數(shù)的裝包與拆包132
5.3變量的作用域133
5.3.1LEGB原則134
5.3.2全局變量和局部變量134
5.4函數(shù)嵌套和遞歸函數(shù)136
5.4.1函數(shù)嵌套136
5.4.2遞歸函數(shù)136
5.5函數(shù)式編程137
5.5.1匿名函數(shù): lambda138
5.5.2內置高階函數(shù): map()140
5.5.3內置高階函數(shù): reduce()141
5.5.4內置高階函數(shù): filter()142
5.5.5zip()函數(shù)143
5.6閉包及其應用143
5.6.1函數(shù)的引用143
5.6.2閉包概述144
5.6.3閉包的應用145
5.7裝飾器及其應用145
5.7.1裝飾器的概念145
5.7.2裝飾器的應用146
5.8迭代器及其應用149
5.8.1迭代器的概念149
5.8.2迭代器的應用151
5.9生成器及其應用152
5.9.1生成器的概念152
5.9.2生成器的應用153
5.10綜合案例: 利用函數(shù)模擬ATM的業(yè)務流程153
5.11本章小結156
5.12習題156
第6章Python文件和數(shù)據(jù)庫操作/157
6.1文件相關的基本概念157
6.1.1文件與路徑157
6.1.2文件的編碼158
6.1.3文本文件與二進制文件的區(qū)別160
6.2文件夾與目錄操作160
6.2.1os.path模塊160
6.2.2獲取與改變工作目錄161
6.2.3目錄與文件操作161
6.2.4文件的重命名和刪除162
6.3文件基本的操作163
6.3.1文件的打開和關閉164
6.3.2文件的讀取與寫入166
6.3.3按行對文件內容讀寫168
6.3.4使用fileinput對象讀取大文件操作169
6.4JSON格式文件及其操作171
6.4.1JSON概述171
6.4.2讀寫JSON文件171
6.4.3數(shù)據(jù)格式轉化對應表173
6.5Python操作MySQL數(shù)據(jù)庫174
6.6.1PyMySQL的安裝175
6.5.2PyMySQL操作MYSQL的流程及常用對象175
6.5.3PyMySQL的使用步驟177
6.6綜合案例: 消費賬單數(shù)據(jù)讀取與修改178
6.7綜合應用案例: 利用文件操作實現(xiàn)會員管理登錄功能模塊179
6.7.1文件類型與數(shù)據(jù)格式180
6.7.2各功能模塊函數(shù)的實現(xiàn)180
6.8本章小結184
6.9習題184
第7章面向對象程序設計/185
7.1面向對象基本概念185
7.2定義類與對象186
7.2.1類的定義187
7.2.2對象的定義187
7.3定義類的成員188
7.3.1屬性的定義188
7.3.2方法的定義191
7.3.3構造方法和析構方法193
7.4封裝195
7.4.1定義與實現(xiàn)私有屬性195
7.4.2get和set兩個方法處理私有屬性196
7.4.3@property裝飾器處理私有屬性196
7.4.4私有方法與公有方法197
7.5繼承198
7.5.1繼承定義與實現(xiàn)198
7.5.2方法重寫200
7.6多態(tài)201
7.7綜合應用案例: 會員管理系統(tǒng)設計與實現(xiàn)202
7.7.1系統(tǒng)需求與設計202
7.7.2系統(tǒng)框架實現(xiàn)203
7.7.3管理系統(tǒng)功能實現(xiàn)205
7.7.4主程序模塊定義與實現(xiàn)207
7.8本章小結208
7.9習題208
第8章模塊和包/209
8.1源程序模塊結構209
8.2模塊的定義與使用211
8.2.1模塊的概念211
8.2.2使用import語句導入模塊212
8.2.3使用fromimport語句導入模塊213
8.2.4模塊搜索目錄213
8.2.5模塊內置函數(shù)214
8.2.6絕對導入和相對導入216
8.3Python中的包216
8.3.1Python程序的包結構216
8.3.2創(chuàng)建和使用包217
8.4引用其他模塊218
8.4.1第三方模塊的下載與安裝218
8.4.2標準模塊的使用220
8.4.3常見的標準模塊222
8.5日期時間函數(shù)223
8.5.1時間函數(shù)223
8.5.2日期函數(shù)225
8.5.3綜合應用: 日歷系統(tǒng)的設計與實現(xiàn)227
8.6測試及打包229
8.6.1代碼測試229
8.6.2代碼打包229
8.7本章小結230
8.8習題231
第9章字符串操作與正則表達式應用/232
9.1字符串的編碼轉換232
9.1.1字符串的編碼233
9.1.2字符串的解碼233
9.2字符串的常見操作234
9.2.1字符串查找234
9.2.2字符串修改237
9.2.3字符串判斷242
9.2.4字符串的長度計算245
9.2.5字符串的格式化246
9.3正則表達式及常見的基本符號249
9.4re模塊實現(xiàn)正則表達式操作251
9.4.1匹配字符串: match()方法252
9.4.2搜索與替換字符串: sub()與subn()函數(shù)254
9.4.3分割字符串: split()函數(shù)254
9.4.4搜索字符串: search()、findall()和finditer()函數(shù)255
9.4.5編譯標志257
9.5綜合應用: 利用正則表達式實現(xiàn)自動圖片下載258
9.6本章小結259
9.7習題259
第10章并發(fā)、并行與多任務編程/261
10.1并發(fā)、并行與多任務261
10.1.1并發(fā)261
10.1.2并行261
10.1.3多任務263
10.1.4I/O密集型任務與CPU密集型任務263
10.2進程與線程264
10.2.1進程264
10.2.2線程265
10.2.3進程與線程的區(qū)別266
10.2.4全局鎖267
10.3多進程267
10.3.1multiprocessing庫267
10.3.2創(chuàng)建多進程267
10.3.3多進程通信269
10.3.4進程池272
10.4多線程276
10.4.1threading模塊276
10.4.2多線程同步279
10.4.3多線程通信286
10.4.4線程池288
10.5本章小結291
10.6習題291