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