《Python程序設(shè)計(jì)》針對(duì)零編程基礎(chǔ)的讀者,以通俗易懂的語(yǔ)言和清晰的邏輯,從基礎(chǔ)語(yǔ)法到高級(jí)應(yīng)用,通過(guò)豐富的示例和案例,引導(dǎo)讀者逐步掌握Python的核心知識(shí)和技能。本書(shū)強(qiáng)調(diào)實(shí)踐操作,通過(guò)大量的實(shí)例和練習(xí),幫助讀者將理論知識(shí)應(yīng)用于實(shí)際項(xiàng)目中,以提高編程能力和解決問(wèn)題的能力。全書(shū)共分10章。第1章介紹Python概況,包括如何下載和安裝Python系統(tǒng),在Python集成開(kāi)發(fā)環(huán)境中運(yùn)行程序;第2章介紹Python語(yǔ)言基礎(chǔ),如數(shù)據(jù)類(lèi)型、變量、輸入輸出等;第3章介紹程序流程控制,主要介紹如何使用三種基本結(jié)構(gòu)來(lái)控制程序的流程;第4章介紹組合數(shù)據(jù)類(lèi)型,包括列表、元組、字典和集合等;第5章介紹字符串與正則表達(dá)式;第6章介紹函數(shù)與模塊;第7章介紹面向?qū)ο蟪绦蛟O(shè)計(jì);第8章介紹文件及目錄操作;第9章介紹圖形界面程序設(shè)計(jì);第10章講解一個(gè)綜合應(yīng)用案例——圖形化界面的小測(cè)驗(yàn)游戲軟件,讀者可以進(jìn)一步完善這個(gè)案例。本書(shū)適合作為高等學(xué)校計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的本科生“面向?qū)ο蟪绦蛟O(shè)計(jì)”課程的教材,又可作為非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的選修課教材,還可供Python編程愛(ài)好者自學(xué)參考。
Python程序設(shè)計(jì)已經(jīng)在蘇州大學(xué)作為計(jì)算機(jī)公共課開(kāi)設(shè)了4年多,使用的教材從最初選用現(xiàn)成教材,再到后來(lái)自己編寫(xiě)并出版使用,也已經(jīng)過(guò)了3年多。在這幾年里積累了更多的素材,也有了更深的體會(huì)。目前迫切需要將書(shū)中的陳舊知識(shí),以及理解不到位的地方予以替換,融入更多適合教學(xué)且生動(dòng)有趣、易理解的例子,以提高教材質(zhì)量。新版教材的特色是例子淺顯易懂、生動(dòng)有趣,又與實(shí)際生活結(jié)合更緊密,將增加一個(gè)學(xué)生易于上手,略加改造就能在現(xiàn)實(shí)中使用的小測(cè)驗(yàn)游戲案例。
前
言
在當(dāng)今數(shù)字化的時(shí)代,編程已經(jīng)成為一項(xiàng)不可或缺的技能。無(wú)論是在數(shù)據(jù)分析、人工
智能、網(wǎng)絡(luò)開(kāi)發(fā),還是在自動(dòng)化腳本編寫(xiě)等領(lǐng)域,編程都發(fā)揮著至關(guān)重要的作用。Python
作為一門(mén)簡(jiǎn)潔、易讀、功能強(qiáng)大的高級(jí)編程語(yǔ)言,以驚人的速度在編程世界中占據(jù)了主導(dǎo)
地位。與其他編程語(yǔ)言相比,Python 不需要過(guò)多關(guān)注復(fù)雜的語(yǔ)法規(guī)則和煩瑣的底層實(shí)現(xiàn)細(xì)
節(jié),這讓開(kāi)發(fā)者能夠?qū)⒏嗟木性诮鉀Q實(shí)際問(wèn)題上。
本書(shū)的編寫(xiě)以簡(jiǎn)潔明了、循序漸進(jìn)為原則,旨在為編程初學(xué)者提供全面且系統(tǒng)的
Python 程序設(shè)計(jì)知識(shí)。本書(shū)從Python 的基礎(chǔ)語(yǔ)法開(kāi)始介紹,包括數(shù)據(jù)類(lèi)型、變量、運(yùn)算符、
控制語(yǔ)句等,書(shū)中有大量的實(shí)例和詳細(xì)的解釋?zhuān)瑤椭x者更好地理解和掌握Python 編程
的基本概念。隨著講解的深入,書(shū)中介紹了函數(shù)和模塊的使用,它們是代碼組織和復(fù)用的
重要基礎(chǔ),有助于編寫(xiě)更加高效的程序。面向?qū)ο蟪绦蛟O(shè)計(jì)也是現(xiàn)代編程的重要范式,書(shū)
中深入探討了Python 中的類(lèi)、對(duì)象、繼承、多態(tài)等面向?qū)ο蟪绦蛟O(shè)計(jì)的核心概念,可以
幫助讀者構(gòu)建功能強(qiáng)大、可維護(hù)性高的應(yīng)用程序,理解大型軟件項(xiàng)目的設(shè)計(jì)和開(kāi)發(fā)流程。
除此之外,本書(shū)也介紹了文件處理、異常處理、圖形化界面設(shè)計(jì)等,這些都是在實(shí)際項(xiàng)目
開(kāi)發(fā)中不可或缺的技能。
最后,本書(shū)通過(guò)一個(gè)綜合案例,以面向?qū)ο蟪绦蛟O(shè)計(jì)和圖形化界面方式,開(kāi)發(fā)了一個(gè)
小測(cè)驗(yàn)游戲軟件,內(nèi)容涉及Excel 文件的操作、文本文件的讀寫(xiě)、將Python 程序轉(zhuǎn)換為可
執(zhí)行程序等技巧,幫助讀者更好地理解Python 程序設(shè)計(jì)。
本書(shū)每章都配備了練習(xí)題,旨在強(qiáng)化讀者對(duì)知識(shí)點(diǎn)的鞏固,而實(shí)際項(xiàng)目案例則模擬真
實(shí)的開(kāi)發(fā)場(chǎng)景,讓讀者在實(shí)踐中運(yùn)用所學(xué)知識(shí),提高解決問(wèn)題的能力。書(shū)中帶* 的章節(jié)屬
于選學(xué)內(nèi)容,可按具體學(xué)時(shí)和教學(xué)的實(shí)際情況取舍。
Pyxzw.indd 1
2025/8/19 16:10:07
II
程序設(shè)計(jì) 第2版Python
編程是一門(mén)實(shí)踐性很強(qiáng)的學(xué)科,只有通過(guò)大量的編碼練習(xí)、項(xiàng)目實(shí)踐以及對(duì)代碼的調(diào)
試和優(yōu)化,才能真正掌握Python 程序設(shè)計(jì)的精髓。希望本書(shū)能夠成為你在充滿挑戰(zhàn)與機(jī)
遇的編程之路上的良師益友,引領(lǐng)你逐步成長(zhǎng)為一名熟練的Python 程序員。
作者
2024 年12 月
黃蔚老師是蘇州大學(xué)東吳學(xué)院大學(xué)計(jì)算機(jī)系副主任,長(zhǎng)期從事計(jì)算機(jī)公共課教學(xué),主要研究領(lǐng)域是人工智能與計(jì)算機(jī)應(yīng)用。主持和參與了多項(xiàng)省部級(jí)、校級(jí)以上教改項(xiàng)目,多次指導(dǎo)學(xué)生獲得中國(guó)大學(xué)生計(jì)算機(jī)設(shè)計(jì)大賽、人工智能及機(jī)器人大賽等獎(jiǎng)項(xiàng)。編寫(xiě)過(guò)多部教材,有豐富的教材編寫(xiě)經(jīng)驗(yàn)。
目
錄
第1 章 Python 概述 .
1
1.1 程序設(shè)計(jì)語(yǔ)言
1
1.2 Python 語(yǔ)言簡(jiǎn)介
1
1.3 Python 開(kāi)發(fā)環(huán)境
2
1.3.1 Python 系統(tǒng)的下載與安裝.
2
1.3.2 IDLE
4
*1.3.3 PyCharm
5
1.4 編寫(xiě)并運(yùn)行Python 程序.
7
1.4.1 Python 代碼的兩種執(zhí)行模式
7
1.4.2 使用PyCharm 編寫(xiě)程序 .
9
1.5 習(xí)題 12
第2 章 Python 語(yǔ)言基礎(chǔ) 13
2.1 Python 程序的編碼規(guī)范13
2.2 數(shù)據(jù)類(lèi)型 15
2.2.1 數(shù)值類(lèi)型 15
2.2.2 字符串 .16
2.2.3 布爾類(lèi)型 18
2.2.4 組合數(shù)據(jù)類(lèi)型 .18
Pyxzw.indd 3
2025/8/19 16:10:07
2.3 變量 19
2.3.1 標(biāo)識(shí)符與關(guān)鍵字 19
2.3.2 對(duì)象與變量 19
2.3.3 id( ) 函數(shù) 21
2.4 基本運(yùn)算 21
2.4.1 算術(shù)運(yùn)算 21
*2.4.2 位運(yùn)算.23
2.4.3 運(yùn)算優(yōu)先級(jí) 26
2.5 賦值語(yǔ)句 26
2.5.1 賦值 26
*2.5.2 變量的共享引用28
2.6 數(shù)據(jù)的輸入輸出 32
2.6.1 標(biāo)準(zhǔn)輸入輸出 .32
2.6.2 格式化輸出 35
2.7 系統(tǒng)函數(shù) 40
2.7.1 函數(shù)類(lèi)型 40
2.7.2 常用內(nèi)置函數(shù) .43
2.7.3 常用庫(kù)函數(shù) 45
2.8 Python 的幫助系統(tǒng)47
2.8.1 dir( ) 和help( ) 函數(shù).47
2.8.2 聯(lián)機(jī)幫助環(huán)境 .47
2.9 習(xí)題 48
第3 章程序流程控制51
3.1 程序基本控制結(jié)構(gòu) 51
3.2 順序結(jié)構(gòu) 51
3.3 分支結(jié)構(gòu) 54
3.3.1 條件表達(dá)式 54
3.3.2 if-else 表達(dá)式 57
3.3.3 if 語(yǔ)句58
3.3.4 控制結(jié)構(gòu)的嵌套 61
3.4 循環(huán)結(jié)構(gòu) 62
3.4.1 while 循環(huán)結(jié)構(gòu) 62
IV
Pyxzw.indd 4
2025/8/19 16:10:07
3.4.2 for 循環(huán)結(jié)構(gòu).64
3.4.3 循環(huán)控制語(yǔ)句 .67
3.4.4 多重循環(huán) 69
3.5 錯(cuò)誤及異常處理 70
3.5.1 程序的錯(cuò)誤 70
3.5.2 異常處理 71
3.5.3 調(diào)試工具debugger 76
3.6 應(yīng)用舉例 78
3.7 習(xí)題 81
第4 章組合數(shù)據(jù)類(lèi)型86
4.1 組合數(shù)據(jù)類(lèi)型概述 86
4.1.1 組合數(shù)據(jù)類(lèi)型的概念 .86
4.1.2 相關(guān)的常用函數(shù) 86
4.1.3 切片操作 90
4.2 列表 94
4.2.1 列表的基本操作 94
4.2.2 列表的方法 98
4.3 元組 101
4.3.1 元組的基本操作 .101
4.3.2 元組與列表的異同點(diǎn) 103
4.4 字典 104
4.4.1 字典的基本操作 .104
4.4.2 字典的方法 107
4.5 集合 111
4.5.1 集合的基本操作 . 111
4.5.2 適用集合的運(yùn)算符 112
4.5.3 集合的方法 113
4.6 推導(dǎo)式與生成式 .116
4.6.1 推導(dǎo)式 116
4.6.2 生成器推導(dǎo)式與迭代器對(duì)象 118
4.7 應(yīng)用舉例 .121
4.8 習(xí)題 132
V
Pyxzw.indd 5
2025/8/19 16:10:07
第5 章字符串與正則表達(dá)式.136
5.1 字符串 136
5.1.1 字符串的基本操作 136
5.1.2 字符串編碼 140
5.1.3 字符串的方法 142
5.1.4 字符串常量 149
*5.2 正則表達(dá)式149
5.2.1 概述 149
5.2.2 正則表達(dá)式的常用元字符 151
5.2.3 re 模塊的匹配操作 156
5.3 應(yīng)用舉例 .160
5.4 習(xí)題 165
第6 章函數(shù)與模塊168
6.1 函數(shù)的定義與調(diào)用 168
6.1.1 函數(shù)的定義 168
6.1.2 函數(shù)的調(diào)用 170
6.1.3 lambda 表達(dá)式和匿名函數(shù) 171
6.2 函數(shù)的參數(shù)傳遞 .171
6.2.1 參數(shù)的傳遞方式 .171
6.2.2 參數(shù)的類(lèi)型 174
6.3 函數(shù)的返回值 177
6.3.1 return 語(yǔ)句和函數(shù)返回值177
6.3.2 多條return 語(yǔ)句177
6.3.3 返回多個(gè)值 178
6.4 變量的作用域 179
6.4.1 局部變量 .179
6.4.2 全局變量 .179
6.5 遞歸函數(shù) .181
6.6 內(nèi)嵌函數(shù) .182
6.7 模塊 184
6.7.1 Python 的程序架構(gòu)184
VI
Pyxzw.indd 6
2025/8/19 16:10:07
*6.7.2 模塊搜索路徑185
6.7.3 模塊的有條件執(zhí)行 185
6.8 應(yīng)用舉例 .186
6.9 習(xí)題 191
第7 章面向?qū)ο蟪绦蛟O(shè)計(jì)193
7.1 面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ) .193
7.1.1 面向過(guò)程與面向?qū)ο?193
7.1.2 面向?qū)ο蟮幕靖拍?194
7.2 類(lèi)與對(duì)象 .195
7.2.1 類(lèi)的定義 .195
7.2.2 對(duì)象的創(chuàng)建和使用 196
7.3 屬性 197
7.3.1 實(shí)例屬性和類(lèi)屬性 197
7.3.2 私有屬性和公有屬性 198
7.3.3 特殊屬性與方法 .199
7.4 方法 200
7.4.1 實(shí)例方法 .200
7.4.2 類(lèi)方法 201
7.4.3 靜態(tài)方法 .202
7.4.4 析構(gòu)方法 .203
7.5 繼承和多態(tài) 204
7.5.1 繼承 204
7.5.2 多態(tài) 205
*7.6 重載206
7.7 應(yīng)用舉例 .208
7.8 習(xí)題 213
第8 章文件及目錄操作215
8.1 文件概述 .215
8.2 文件的打開(kāi)與關(guān)閉 216
8.2.1 打開(kāi)文件 .216
8.2.2 關(guān)閉文件 .217
VII
Pyxzw.indd 7
2025/8/19 16:10:07
8.3 文本文件的讀寫(xiě) .217
8.3.1 讀取文本文件 217
8.3.2 文本文件的寫(xiě)入 .219
8.4 CSV 文件的讀寫(xiě) 220
8.4.1 CSV 文件簡(jiǎn)介 .220
8.4.2 讀取CSV 文件 221
8.4.3 寫(xiě)入CSV 文件 221
8.5 文件內(nèi)的移動(dòng) 223
8.5.1 移動(dòng)文件指針 223
8.5.2 獲取文件指針的位置 224
*8.6 二進(jìn)制文件的讀寫(xiě)224
*8.7 文件與目錄管理.226
8.7.1 文件管理 .226
8.7.2 目錄管理 .228
*8.8 文件壓縮.230
8.8.1 文件壓縮 .230
8.8.2 解壓文件 .231
8.9 文件操作應(yīng)用舉例 231
8.10 習(xí)題 .235
*第9 章圖形界面程序設(shè)計(jì)239
9.1 tkinter 庫(kù)創(chuàng)建圖形用戶界面239
9.1.1 tkinter 庫(kù)239
9.1.2 創(chuàng)建圖形用戶界面的基本步驟 .240
9.1.3 設(shè)置主窗口或控件的屬性 240
9.1.4 創(chuàng)建主窗口 240
9.2 常用控件 .243
9.2.1 常用控件概述 243
9.2.2 按鈕 244
9.2.3 標(biāo)簽和消息 245
9.2.4 文本框 247
9.2.5 單選按鈕和復(fù)選框 250
9.2.6 列表框 253
VIII
Pyxzw.indd 8
2025/8/19 16:10:07
9.2.7 滾動(dòng)條和刻度條 .256
9.2.8 框架 258
9.2.9 菜單 259
9.2.10 ttk 子模塊.262
9.3 對(duì)話框 262
9.3.1 彈出式消息框 262
9.3.2 文件選擇對(duì)話框 .265
9.3.3 顏色選擇對(duì)話框 .265
9.3.4 自定義對(duì)話框 266
9.4 布局管理器 266
9.4.1 tkinter 模塊繪圖坐標(biāo)系267
9.4.2 pack 布局管理器.267
9.4.3 grid 布局管理器268
9.4.4 place 布局管理器269
9.5 事件處理 .271
9.5.1 tkinter 的事件處理機(jī)制271
9.5.2 event 類(lèi).272
9.5.3 事件描述 .272
9.5.4 事件綁定 .274
9.6 圖形用戶界面應(yīng)用舉例 .275
9.7 習(xí)題 277
第10 章綜合應(yīng)用案例278
10.1 基本功能說(shuō)明 278
10.1.1 登錄 .278
10.1.2 答題 .279
10.1.3 輔助功能 280
10.2 軟件實(shí)現(xiàn) 282
10.2.1 Exam 模塊282
10.2.2 圖形用戶界面實(shí)現(xiàn) .286
10.3 PyInstaller 庫(kù)生成可執(zhí)行文件.293
10.4 openpyxl 模塊簡(jiǎn)介 .296
10.4.1 準(zhǔn)備工作 296
IX
Pyxzw.indd 9
2025/8/19 16:10:07
X
程序設(shè)計(jì) 第2版Python
10.4.2 讀取數(shù)據(jù) 296
10.4.3 寫(xiě)入數(shù)據(jù) 299
10.5 習(xí)題 . 300
參考文獻(xiàn).301