本書圍繞Python程序設(shè)計方法及應(yīng)用,依據(jù)感知Python、理解Python、應(yīng)用Python的漸進式思路組織教材內(nèi)容,注重各知識點間的交叉融合以及Python應(yīng)用能力的培養(yǎng)。 本書共8章,大致分為三部分:第一部分(第1章)感知Python,介紹Python的環(huán)境配置、基本輸入輸出、變量命名、語法規(guī)范等,通過實例認識Python程序,感知程序運行過程及設(shè)計方法;第二部分(第2~6章)理解Python,詳細介紹數(shù)據(jù)類型、程序控制結(jié)構(gòu)、函數(shù)、文件和數(shù)據(jù)處理;第三部分(第7~8章)應(yīng)用Python,介紹Python圖形界面設(shè)計tkinter庫,以及Python在繪圖、數(shù)據(jù)可視化、數(shù)據(jù)處理庫等方面的應(yīng)用。本書敘述清晰,案例豐富,讀者可以循序漸進地學(xué)會Python編程方法及應(yīng)用。 本書適合作為各類大專院校的Python程序設(shè)計教材,也可作為計算機等級考試(二級)的輔導(dǎo)教材,以及Python程序設(shè)計愛好者的自學(xué)參考書。
Python程序設(shè)計與應(yīng)用Python語言從20世紀90年代誕生至今,由于其易學(xué)易用以及豐富的開源庫,使其在數(shù)據(jù)分析、人工智能等多領(lǐng)域有著廣泛的應(yīng)用,是最受歡迎的程序設(shè)計語言之一。Python通過眾多的第三方庫,覆蓋了從數(shù)據(jù)到智能、文本處理到虛擬現(xiàn)實、控制邏輯到系統(tǒng)結(jié)構(gòu)等幾乎所有的計算領(lǐng)域,所有專業(yè)的學(xué)生,均可以找到Python與其專業(yè)領(lǐng)域應(yīng)用的結(jié)合點,Python簡潔易用的特點,讓其成為很適合大學(xué)生學(xué)習(xí)和掌握的第一門程序設(shè)計語言。目前絕大多數(shù)高校均開設(shè)了Python程序設(shè)計課程。
把Python程序設(shè)計作為一門語言,真正用起來解決實際問題才是它的價值所在。因此,在本書的編寫中,將從會編程到真應(yīng)用作為理念。本書的編者長期從事程序設(shè)計語言的教學(xué)與應(yīng)用開發(fā),將多年的教學(xué)實踐經(jīng)驗融入本書的編寫過程中,全書通過100多個問題求解案例,既注重知識點從單一到綜合的呈現(xiàn),又注重知識點間的交叉融合,同時通過綜合實驗的精心設(shè)計,注重分析和解決實際問題的能力提升。
1. 本書內(nèi)容
按照感知Python、理解Python、應(yīng)用Python的漸進式思路組織。本書共8章,大致分為以下三部分。
第一部分(第1章)感知Python,介紹Python的環(huán)境配置、基本輸入輸出、變量命名、語法規(guī)范等。讀者通過第一個程序認識Python,通過實例感知程序設(shè)計的流程和方法,同時了解程序設(shè)計應(yīng)遵循的編程規(guī)范。
第二部分(第2~6章)理解Python,詳細介紹數(shù)據(jù)類型、程序控制結(jié)構(gòu)、函數(shù)、文件和數(shù)據(jù)處理。從基本數(shù)據(jù)類型到組合數(shù)據(jù)類型,體會處理數(shù)據(jù)過程中的類型選擇。通過程序控制結(jié)構(gòu),詳細說明分支、循環(huán)、異常處理的使用方法及應(yīng)用場景。通過函數(shù)理解程序模塊化思想,從常用的文本文件、CSV文件、JSON文件介紹基本操作和數(shù)據(jù)處理方法。
第三部分(第7~8章)應(yīng)用Python,介紹Python圖形界面設(shè)計tkinter庫,以及Python在繪圖、數(shù)據(jù)可視化、數(shù)據(jù)處理庫等方面的應(yīng)用。第7章介紹的tkinter庫讓Python程序更加形象直觀,提升程序交互和用戶體驗。第8章通過Python在典型領(lǐng)域的實用案例,例如繪制中國結(jié)、生成二維碼、成績分析、獲取影評數(shù)據(jù)等,結(jié)合turtle、wordcloud、matplotlib、PIL、qrcode、NumPy、pandas、requests等庫的介紹,將之前的知識進行綜合應(yīng)用。對于第8章的綜合應(yīng)用案例,提供了微視頻,幫助讀者更深入地理解綜合類項目的開發(fā)步驟和具體實現(xiàn)方法。2. 本書特點
(1) 每章開頭均包括學(xué)習(xí)目標、內(nèi)容結(jié)構(gòu)圖、各例題知識要點,讓讀者對本章內(nèi)容有清晰的了解。每章末尾均有小結(jié)和習(xí)題,用于鞏固本章的編程知識。
(2) 例題素材貼近生活,編排注重循序漸進,每個例題均按照程序思路分析、完整代碼、總結(jié)和思考進行說明。由淺入深地將Python程序設(shè)計方法貫穿到例題中,強化程序思維能力培養(yǎng)和編程應(yīng)用。
(3) 每章均有上機實驗,該環(huán)節(jié)通過綜合應(yīng)用實例,便于讀者對本章要點的融會貫通和再次強化。突出Python程序設(shè)計的實踐性和應(yīng)用性。
(4) 綜合運用章節(jié),通過Python在各個領(lǐng)域的典型應(yīng)用案例,綜合運用前面所學(xué)的知識,把Python真正用起來,解決實際問題。
本書由梁愛華、張利霞任主編,全書由梁愛華進行規(guī)劃設(shè)計,北京聯(lián)合大學(xué)多個學(xué)院的老師參與了本書的編寫工作。其中,第1章由梁愛華編寫,第2、3章由張利霞、李紅豫、倪景秀、王雪嶠編寫,第4章由馬桂真編寫,第5章由王雪嶠編寫,第6章由王波編寫,第7章由張利霞編寫,第8章由梁愛華編寫,張利霞、倪景秀提供了部分案例素材。全書由梁愛華、張利霞負責(zé)統(tǒng)稿和校訂,聶清林、湯海鳳、李紅豫、王雪嶠、倪景秀參與了校對,徐歆愷提出了建議,所有編寫教師均進行了教學(xué)實踐。
本書提供全套教學(xué)課件、源代碼、課后習(xí)題答案、教學(xué)計劃及學(xué)時分配建議。配套資源可通過清華大學(xué)出版社官方網(wǎng)站的下載區(qū)下載或與作者聯(lián)系索取,作者的電子郵箱為liangaihua@buu.edu.cn。
在本書編寫過程中,作者始終以科學(xué)嚴謹?shù)膽B(tài)度,力求精益求精,但限于作者水平,書中難免有不足和疏漏之處,懇請讀者批評和指正。Python程序設(shè)計與應(yīng)用前言
作者2022年4月
第1章Python概述1
1.1Python簡介2
1.1.1計算機語言2
1.1.2Python語言的發(fā)展歷史2
1.1.3Python的應(yīng)用領(lǐng)域3
1.2開發(fā)環(huán)境配置4
1.2.1下載和安裝開發(fā)環(huán)境4
1.2.2其他開發(fā)工具5
1.2.3編寫第一個程序6
1.2.4查看幫助7
1.2.5第三方庫的安裝8
1.3基本輸入輸出9
1.3.1賦值語句9
1.3.2input()函數(shù)10
1.3.3print()函數(shù)11
1.3.4eval()函數(shù)12
1.4變量13
1.4.1關(guān)鍵字13
1.4.2變量命名14
1.5注釋與縮進15
1.5.1注釋15
1.5.2縮進15
1.6程序的編寫方法16
1.7源程序打包16
1.8本章小結(jié)17
1.9上機實驗17
習(xí)題19
第2章基本數(shù)據(jù)類型21
2.1數(shù)據(jù)類型22Python程序設(shè)計與應(yīng)用目錄2.2數(shù)值類型22
2.2.1整數(shù)類型22
2.2.2浮點數(shù)類型24
2.2.3復(fù)數(shù)類型25
2.2.4數(shù)值運算25
2.3布爾類型32
2.4字符串類型33
2.4.1字符串表示33
2.4.2字符串編碼35
2.4.3字符串格式化39
2.4.4字符串索引與切片42
2.4.5字符串處理函數(shù)45
2.4.6字符串處理方法46
2.5數(shù)據(jù)類型轉(zhuǎn)換53
2.6本章小結(jié)54
2.7上機實驗55
習(xí)題58
第3章程序控制結(jié)構(gòu)61
3.1程序結(jié)構(gòu)62
3.1.1程序流程圖62
3.1.2結(jié)構(gòu)化程序設(shè)計64
3.1.3程序的基本結(jié)構(gòu)64
3.2分支結(jié)構(gòu)65
3.2.1條件表達式65
3.2.2單分支結(jié)構(gòu)(if語句)66
3.2.3二分支結(jié)構(gòu)(ifelse語句)67
3.2.4多分支結(jié)構(gòu)(ifelifelse語句)69
3.2.5分支結(jié)構(gòu)嵌套72
3.3循環(huán)結(jié)構(gòu)74
3.3.1for循環(huán)74
3.3.2while循環(huán)79
3.3.3break和continue81
3.3.4帶else的循環(huán)83
3.3.5嵌套循環(huán)84
3.4random庫86
3.5異常處理89
3.5.1程序中的錯誤89
3.5.2捕捉和處理異常90
3.6本章小結(jié)92
3.7上機實驗92
習(xí)題98
第4章組合數(shù)據(jù)類型103
4.1概述104
4.2序列類型105
4.2.1序列的基本操作105
4.2.2序列的通用函數(shù)與方法108
4.2.3元組112
4.3列表115
4.3.1列表的基本操作116
4.3.2列表的方法119
4.3.3列表推導(dǎo)式123
4.3.4列表的典型應(yīng)用124
4.4集合127
4.4.1集合的基本操作127
4.4.2集合的函數(shù)和方法129
4.4.3集合的典型應(yīng)用132
4.5字典134
4.5.1字典的基本操作135
4.5.2字典的方法137
4.5.3字典的典型應(yīng)用139
4.6本章小結(jié)143
4.7上機實驗143
習(xí)題145
第5章函數(shù)147
5.1函數(shù)的定義與調(diào)用148
5.1.1函數(shù)的定義148
5.1.2函數(shù)的調(diào)用149
5.2函數(shù)的參數(shù)傳遞150
5.2.1位置傳遞151
5.2.2關(guān)鍵字傳遞153
5.2.3可選參數(shù)153
5.2.4可變參數(shù)154
5.3函數(shù)的返回值155
5.3.1返回多個值155
5.3.2返回組合數(shù)據(jù)156
5.4局部變量和全局變量157
5.5lambda函數(shù)159
5.6函數(shù)遞歸160
5.7Python內(nèi)置函數(shù)163
5.8本章小結(jié)166
5.9上機實驗166
習(xí)題167
第6章文件和數(shù)據(jù)處理170
6.1文件基本操作171
6.1.1文件的概念171
6.1.2文件的打開與關(guān)閉171
6.1.3讀取文件175
6.1.4寫入文件179
6.2CSV文件的讀寫180
6.2.1讀取CSV格式文件181
6.2.2寫入CSV格式文件185
6.3JSON格式與序列化188
6.3.1JSON格式字符串的序列化189
6.3.2JSON文件的序列化191
6.4os模塊192
6.5本章小結(jié)194
6.6上機實驗194
習(xí)題198
第7章圖形界面設(shè)計199
7.1圖形用戶界面概述200
7.1.1圖形用戶界面200
7.1.2tkinter庫概述200
7.2布局管理器205
7.2.1pack布局管理器205
7.2.2grid布局管理器207
7.2.3place布局管理器210
7.3tkinter庫常用控件211
7.3.1標簽Label211
7.3.2單行文本框Entry212
7.3.3按鈕Button213
7.3.4框架Frame和LabelFrame216
7.3.5單選按鈕Radiobutton216
7.3.6復(fù)選框Checkbutton217
7.3.7列表框ListBox220
7.3.8菜單Menu224
7.4對話框227
7.4.1通用消息對話框227
7.4.2文件選擇對話框230
7.4.3顏色選擇對話框232
7.4.4簡單信息對話框234
7.5事件處理236
7.5.1事件序列236
7.5.2事件綁定238
7.6本章小結(jié)239
7.7上機實驗239
習(xí)題241
第8章綜合應(yīng)用244
8.1繪圖應(yīng)用繪制中國結(jié)245
8.1.1turtle庫245
8.1.2繪制中國結(jié)248
8.2數(shù)據(jù)可視化應(yīng)用定制中文詞云251
8.2.1wordcloud庫251
8.2.2jieba庫253
8.2.3定制中文詞云254
8.3數(shù)據(jù)可視化應(yīng)用溫度變化展示256
8.3.1matplotlib庫256
8.3.2溫度變化分析260
8.4圖像處理應(yīng)用生成二維碼261
8.4.1PIL庫262
8.4.2qrcode庫263
8.4.3生成二維碼263
8.5數(shù)據(jù)分析應(yīng)用成績分析265
8.5.1NumPy庫265
8.5.2pandas庫267
8.5.3成績分析268
8.6網(wǎng)絡(luò)爬蟲應(yīng)用獲取影評數(shù)據(jù)271
8.6.1網(wǎng)絡(luò)爬蟲概述271
8.6.2網(wǎng)絡(luò)爬蟲常用技術(shù)271
8.6.3獲取影評數(shù)據(jù)273
8.7本章小結(jié)275
8.8上機實驗275
習(xí)題276
附錄APython關(guān)鍵字278
附錄BPython標準異常280
附錄CUnicode編碼和UTF8編碼282
參考文獻288