隨著大數(shù)據(jù)、人工智能等信息技術(shù)的飛速發(fā)展,Python語言受到了產(chǎn)業(yè)界、教育界和學(xué)術(shù)界的廣泛關(guān)注。在近幾年的TIOBE編程語言排行榜中,Python長時間穩(wěn)居前三名,僅次于老牌程序設(shè)計語言C與Java,并且在2010年、2018年和2020年獲得TIOBE年度編程語言,成為用戶數(shù)量增長速度快的計算機程序設(shè)計語言。
2017年,我們預(yù)見到了Python語言的發(fā)展趨勢,也意識到Python是一門非常適合大學(xué)生學(xué)習的程序設(shè)計語言。在清華大學(xué)出版社的支持下,本書的第1版順利出版。第1版教材凝結(jié)了作者多年的教學(xué)經(jīng)驗,同時也蘊涵著理想主義色彩的教育探索意味。我們希望編寫一本適合各個專業(yè)的、編程零基礎(chǔ)學(xué)生的程序設(shè)計教材,以通俗易懂的語言、簡潔清晰的邏輯、由淺入深的設(shè)計,引領(lǐng)大學(xué)生走進Python程序設(shè)計的世界,開啟自己的編程之旅。幾年來,第1版教材受到了全國很多大學(xué)生、高校教師以及其他Python學(xué)習者的歡迎,多所高校將其作為計算機程序設(shè)計的公共課或?qū)I(yè)課教材,并且榮獲首屆遼寧省優(yōu)秀教材獎,我們在深感欣慰的同時也感受到了沉甸甸的責任。
2018年,Python被列入了全國計算機等級考試(NCRE)二級的考試科目,極大地推動了Python語言在全國高校程序設(shè)計教學(xué)中的普及,大量高校開始開設(shè)Python語言程序設(shè)計課程。同時,Python語言的版本也多次迭代?梢哉f,Python教學(xué)的外部環(huán)境發(fā)生了巨大變化。為了適應(yīng)這種變化,也為了總結(jié)幾年來Python教學(xué)的一線經(jīng)驗,我們決定對原教材進行修訂。本修訂版的目標讀者仍定位為程序設(shè)計語言的初學(xué)者,修改原教材中的部分錯誤,依據(jù)全國計算機等級考試二級Python語言程序設(shè)計考試大綱(2018年版)的要求,增加了原教材中沒有的部分知識點,精簡了原教材中一些不重要的內(nèi)容,刪除了一些二級大綱中未要求的內(nèi)容。同時,修訂版中也增加了一些與基礎(chǔ)知識相關(guān)但有一定難度的內(nèi)容(標星號*的章節(jié)),供學(xué)有余力、想進一步深入學(xué)習Python的讀者選學(xué),教師可以在教學(xué)中自由選擇是否講授這部分內(nèi)容。
相較于第1版,第2版在章節(jié)編排上做了較大改動,全書修訂后共包含10章,將原書第9章Python異常情況及處理提前到第4章,使全書在整體知識脈絡(luò)上更為清晰,邏輯順序更為合理,利于讀者的學(xué)習。刪除了第1版的第5章字符串和正則表達式中正則表達式部分的全部內(nèi)容,將字符串部分移到新的第5章Python數(shù)據(jù)結(jié)構(gòu),并對內(nèi)容做了適當增減。在內(nèi)容上,對重要章節(jié)中的實例、知識描述等都做了較大改動,新增了5.7節(jié)Python特殊的數(shù)據(jù)結(jié)構(gòu),介紹了迭代器、生成器、可變對象、不可變對象等重要概念。6.7節(jié)增加了兩部分內(nèi)容:詞云模塊wordcloud和可執(zhí)行程序生成模塊pyinstaller,滿足計算機等級考試二級大綱中的要求,也擴展了學(xué)生掌握的第三方模塊。7.1節(jié)增加了文件的編碼部分,有助于學(xué)生理解、使用各種不同編碼的文件。
針對讀者反饋的實驗內(nèi)容不足問題,本次修訂新增了配套實驗作為教材第10章內(nèi)容,用于學(xué)生實踐訓(xùn)練,每一節(jié)對應(yīng)前9章的理論學(xué)習內(nèi)容,供讀者實踐提升。
本書第2版由王學(xué)穎、司雨昌、王萍共同編著,感謝劉立群、劉冰在本書第1版編寫過程中做出的貢獻,本書也得到了很多老師和讀者無私的幫助和支持,在此向他們的付出表示衷心的感謝。
編 者
2021年5月
●第1章Python語言概述1
1.1程序設(shè)計語言概述1
1.1.1程序設(shè)計語言的演變1
1.1.2高級語言的運行機制2
1.2Python的產(chǎn)生與特性3
1.2.1Python的產(chǎn)生與發(fā)展3
1.2.2Python語言的特性4
1.3Python的開發(fā)環(huán)境5
1.3.1Python的下載和安裝5
1.3.2IDLE開發(fā)環(huán)境7
1.4Python程序書寫規(guī)范12
1.4.1程序的基本結(jié)構(gòu)12
1.4.2基本語法規(guī)則14
習題116
●第2章Python基礎(chǔ)語法17
2.1基本數(shù)據(jù)類型17
2.1.1數(shù)值類型17
2.1.2字符串類型19
2.1.3布爾類型19
2.2常量與變量20
2.2.1常量20
2.2.2變量20
2.2.3變量的賦值22
2.2.4標識符與關(guān)鍵字25
2.3運算符與表達式26
2.3.1算術(shù)運算符26
2.3.2關(guān)系運算符27
2.3.3賦值運算符27
2.3.4邏輯運算符28
2.3.5成員運算符28
2.3.6身份運算符29
2.3.7表達式30
2.4常用內(nèi)置函數(shù)31
2.4.1輸入輸出函數(shù)31
2.4.2數(shù)學(xué)運算函數(shù)33
2.4.3轉(zhuǎn)換函數(shù)34
2.4.4其他常用函數(shù)37
2.5常用標準模塊40
2.5.1模塊的導(dǎo)入40
2.5.2math模塊41
2.5.3random模塊43
2.5.4time模塊44
2.5.5turtle模塊47
習題251
●第3章Python控制語句52
3.1結(jié)構(gòu)化程序設(shè)計52
3.1.1程序流程圖52
3.1.2程序的基本結(jié)構(gòu)53
3.2分支結(jié)構(gòu)55
3.2.1單分支結(jié)構(gòu)55
3.2.2雙分支結(jié)構(gòu)57
3.2.3多分支結(jié)構(gòu)58
3.2.4分支結(jié)構(gòu)的嵌套60
3.3循環(huán)結(jié)構(gòu)61
3.3.1for循環(huán)62
3.3.2while循環(huán)65
3.3.3循環(huán)的嵌套68
3.4break語句和continue語句70
3.4.1break語句70
3.4.2continue語句73
習題376
●第4章Python異常情況及處理77
4.1Python的異常77
4.1.1Python的常見異常77
4.1.2Python的異常處理79
4.2常用異常處理方法80
4.2.1基本的try…except語句80
4.2.2try…except…else語句81
4.2.3處理多重異常的try…except結(jié)構(gòu)83
4.2.4try…except…finally語句85
4.3斷言與上下文管理語句87
4.3.1斷言語句87
4.3.2上下文管理語句89
習題490
●第5章Python數(shù)據(jù)結(jié)構(gòu)91
5.1組合數(shù)據(jù)類型簡介91
5.2字符串的基本操作92
5.2.1字符串的索引與分片93
5.2.2字符串的基本運算95
5.2.3字符串運算方法96
5.2.4字符串的格式化99
5.3列表105
5.3.1列表的創(chuàng)建106
5.3.2列表的基本操作107
5.3.3列表的其他操作113
5.4元組116
5.4.1元組的創(chuàng)建117
5.4.2元組的基本操作118
5.4.3序列類型的操作函數(shù)120
5.5字典121
5.5.1字典的創(chuàng)建121
5.5.2字典的基本操作124
5.5.3字典的其他操作130
5.6集合132
5.6.1集合的創(chuàng)建132
5.6.2集合的基本操作134
5.6.3集合的其他操作135
*5.7Python特殊的數(shù)據(jù)結(jié)構(gòu)137
5.7.1迭代器和生成器137
5.7.2可變對象和不可變對象140
習題5142
●第6章Python函數(shù)和模塊144
6.1函數(shù)的定義144
6.2函數(shù)的調(diào)用和返回值146
6.2.1函數(shù)的調(diào)用146
6.2.2函數(shù)的返回值148
6.3函數(shù)的參數(shù)149
6.3.1參數(shù)傳遞的方式149
6.3.2位置參數(shù)和關(guān)鍵字參數(shù)151
6.3.3默認值參數(shù)154
6.3.4可變參數(shù)156
6.4變量的作用域162
6.5函數(shù)的嵌套165
6.5.1函數(shù)的嵌套定義165
6.5.2lambda函數(shù)168
6.6函數(shù)的遞歸168
6.7常用第三方模塊173
6.7.1模塊的搜索路徑174
6.7.2自定義模塊和包174
6.7.3第三方模塊的安裝177
6.7.4中文分詞模塊jieba179
6.7.5詞云模塊wordcloud186
6.7.6可執(zhí)行程序生成模塊pyinstaller191
習題6193
●第7章Python文件處理196
7.1文件的概念196
7.1.1文件196
7.1.2文件的分類196
*7.1.3文件的編碼198
7.2文件的打開與關(guān)閉204
7.2.1文件的打開204
7.2.2文件的關(guān)閉206
7.3文件的讀/寫208
7.3.1文件的讀取208
7.3.2文件的寫入212
7.4文件的定位214
7.4.1seek()函數(shù)214
7.4.2tell()函數(shù)216
7.5文件及文件夾操作217
7.5.1os模塊217
7.5.2os.path模塊218
習題7220
●第8章Python類和對象222
8.1面向?qū)ο缶幊?22
8.1.1面向過程與面向?qū)ο?22
8.1.2面向?qū)ο蟮南嚓P(guān)概念223
8.2類的定義與對象的創(chuàng)建225
8.2.1類的定義格式225
8.2.2對象的創(chuàng)建226
8.3屬性和方法229
8.3.1類屬性與對象屬性230
8.3.2公有屬性與私有屬性231
8.3.3對象方法232
8.3.4類方法234
8.3.5靜態(tài)方法235
8.3.6內(nèi)置方法237
8.4繼承239
8.4.1繼承和派生的概念240
8.4.2派生類的定義240
8.4.3派生類的組成243
8.4.4多繼承244
8.5多態(tài)性246
8.5.1方法重載246
8.5.2運算符重載247
習題8249
●第9章Python高級編程251
9.1GUI編程251
9.1.1Python常用GUI模塊251
9.1.2tkinter模塊253
9.2網(wǎng)絡(luò)編程282
9.2.1socket編程282
9.2.2Python網(wǎng)絡(luò)爬蟲287
9.3數(shù)據(jù)庫編程295
9.3.1SQLite數(shù)據(jù)庫簡介295
9.3.2Python操作SQLite數(shù)據(jù)庫295
習題9298
●第10章實踐訓(xùn)練300
10.1Python語言概述300
10.1.1Python的安裝300
10.1.2Python的運行方式302
10.2Python基礎(chǔ)語法306
10.2.1變量及其賦值306
10.2.2基本數(shù)據(jù)類型與表達式307
10.2.3常用內(nèi)置函數(shù)309
10.2.4常用標準模塊310
10.3Python控制語句314
10.3.1分支結(jié)構(gòu)程序設(shè)計實驗314
10.3.2循環(huán)結(jié)構(gòu)程序設(shè)計317
10.3.3break和continue語句323
10.4Python異常處理328
10.5Python數(shù)據(jù)結(jié)構(gòu)329
10.5.1字符串329
10.5.2列表和元組332
10.5.3字典和集合337
10.6Python函數(shù)和模塊339
10.6.1函數(shù)的定義、調(diào)用和返回值339
10.6.2函數(shù)的參數(shù)342
10.6.3變量的作用域347
10.6.4函數(shù)的遞歸349
10.6.5常用第三方模塊的使用351