本書是以Python 語言(Python 3 版本)作為入門語言的程序設計教材,以嶄新的思路進行設計和編排。全書以程序設計零起點讀者為主要對象,以培養(yǎng)程序設計能力為目標,簡潔通俗,循序漸進,通過例題,重點講解程序設計思想和方法,力圖將Python 語言基礎知識介紹和程序設計能力培養(yǎng)完美結合,培養(yǎng)讀者對程序設計的興趣,提高讀者程序設計能力水平。本書共10 章,包括程序設計概述,基本程序設計,程序的控制結構,函數(shù),字符串、列表和元組,字典和集合,對象和類,繼承和多態(tài),異常處理以及文件。本書適合作為高等學校學生學習程序設計課程的教材,也可供程序員和編程愛好者參考使用。
本書特色:1.本書以程序設計零起點讀者為主要對象,以培養(yǎng)程序設計能力為目標。2.內容簡潔通俗、循序漸進,重點講解程序設計思想和方法,力圖將Python語言基礎知識和程序設計能力培養(yǎng)完美結合。3.本書配有iStudy通用實踐評價平臺,可實現(xiàn)在線學習、練習、測評與考務管理。4.本書源于教學改革和教學實踐,體現(xiàn)了程序設計教學改革的成果。
虞歌,杭州師范大學杭州國際服務工程學院(信息科學與工程學院)副教授,碩士生導師,杭州市教育局系統(tǒng)優(yōu)秀教育工作者/杭州市教育局系統(tǒng)優(yōu)秀教師,長期從事計算機應用技術、計算機教育方面的研究與教學工作,主講《程序設計基礎》《面向對象程序設計》《Web程序設計》等課程,主編和參編教材多部。
第1 章
程序設計概述............................ 1
1.1 計算機系統(tǒng)......................................
1
1.1.1 計算機硬件系統(tǒng)....................
1
1.1.2 計算機軟件系統(tǒng)....................
2
1.1.3 計算機中的信息表示............
3
1.2 程序設計基礎..................................
5
1.2.1 程序.......................................
5
1.2.2 程序設計語言........................
5
1.2.3 程序設計...............................
6
1.3 Python 語言的發(fā)展歷史與特點....... 7
1.3.1 Python 語言的發(fā)展歷史........ 7
1.3.2 Python 語言的特點................
8
1.4 Python 程序開發(fā)..............................
9
1.4.1 基本術語...............................
9
1.4.2 Python 程序的開發(fā)過程...... 10
1.4.3 搭建Python 編程環(huán)境.........
10
1.5 初識Python 程序...........................
13
1.5.1 第一個Python 程序.............
13
1.5.2 兩個整數(shù)的加、減、乘、
除、整除程序..................... 14
1.5.3 算術表達式求值程序..........
15
1.5.4 華氏溫度轉換為攝氏
溫度的程序......................... 15
思考與練習............................................. 16
編程題.................................................... 16
第2 章
基本程序設計.......................... 18
2.1 計算三角形面積的程序................
18
2.2 標識符及其命名規(guī)則....................
19
2.2.1 標識符.................................
19
2.2.2 關鍵字.................................
19
2.3 變量和常量....................................
20
2.3.1 變量.....................................
20
2.3.2 常量.....................................
21
2.4 數(shù)值數(shù)據(jù)類型和運算符.................
21
2.5 字符串和字符簡介........................
25
2.6 列表、元組和字典簡介.................
29
2.6.1 初識列表.............................
29
2.6.2 初識元組.............................
30
2.6.3 初識字典.............................
31
2.7 內置函數(shù)和數(shù)學函數(shù)....................
32
2.7.1 內置函數(shù).............................
32
2.7.2 數(shù)學函數(shù).............................
33
2.8 對象和方法簡介............................
36
2.9 程序設計風格................................
38
2.9.1 適當?shù)淖⑨?.........................
38
2.9.2 命名習慣.............................
38
2.9.3 程序編排.............................
39
思考與練習............................................. 39
編程題.................................................... 41
第3 章
程序的控制結構....................... 42
3.1 單入口單出口的控制結構.............
42
3.2 布爾類型和關系運算符.................
43
3.3 成員運算符和身份運算符.............
45
3.4 if 語句............................................
47
3.4.1 單分支if 語句和雙分支
if-else 語句..........................
47
3.4.2 多分支if-elif-else 語句...... 48
3.5 產生隨機數(shù)....................................
50
3.6 邏輯運算符....................................
51
3.7 循環(huán)...............................................
53
3.8 while 語句......................................
54
3.9 for 語句..........................................
57
3.10 pass、break 和continue 語句....... 60
3.11 嵌套循環(huán)......................................
61
思考與練習............................................. 63
編程題.................................................... 65
第4 章
函數(shù)........................................ 68
4.1 函數(shù)的定義和調用........................
68
4.2 函數(shù)的設計規(guī)則............................
72
4.2.1 函數(shù)頭的設計規(guī)則..............
72
4.2.2 函數(shù)體的設計規(guī)則..............
72
4.3 函數(shù)的參數(shù)....................................
73
4.3.1 位置參數(shù)和關鍵字參數(shù)...... 73
4.3.2 默認參數(shù).............................
74
4.3.3 參數(shù)傳遞.............................
75
4.3.4 包裹傳遞參數(shù)和解包裹...... 76
4.4 變量的作用域................................
78
4.5 lambda 表達式...............................
79
4.6 函數(shù)式編程....................................
81
4.7 遞歸...............................................
84
4.7.1 遞歸的定義.........................
84
4.7.2 運用遞歸求解問題..............
86
4.7.3 遞歸和循環(huán).........................
87
4.7.4 尾遞歸.................................
89
4.8 海龜圖...........................................
90
4.8.1 設置畫布.............................
90
4.8.2 控制海龜.............................
92
4.8.3 控制畫筆.............................
95
4.8.4 分形圖形...........................
100
4.9 模塊化代碼..................................
101
思考與練習........................................... 102
編程題.................................................. 104
第5 章
字符串、列表和元組.............. 107
5.1 字符串.........................................
107
5.1.1 字符編碼和字符串............
107
5.1.2 字符串的基本操作............
109
5.1.3 正則表達式.......................
115
5.2 列表.............................................
121
5.2.1 列表的概念.......................
121
5.2.2 列表的基本操作................
122
5.2.3 復制列表...........................
131
5.2.4 列表和函數(shù)........................
133
5.2.5 二維列表...........................
135
5.3 元組.............................................
137
5.3.1 元組的概念........................
137
5.3.2 元組的基本操作................
138
5.4 排序和查找..................................
140
5.4.1 排序...................................
140
5.4.2 查找...................................
142
思考與練習........................................... 144
編程題.................................................. 146
第6 章
字典和集合............................ 150
6.1 字典.............................................
150
6.1.1 字典的概念........................
150
6.1.2 字典的基本操作................
151
6.2 集合.............................................
157
6.2.1 集合的概念........................
157
6.2.2 集合的基本操作................
158
思考與練習........................................... 165
編程題.................................................. 166
第7 章
對象和類............................... 168
7.1 面向對象程序設計......................
168
7.2 使用類編寫程序..........................
169
7.2.1 聲明類...............................
169
7.2.2 創(chuàng)建對象...........................
170
7.3 對象作為函數(shù)參數(shù)......................
171
7.4 對象列表......................................
171
7.5 隱藏數(shù)據(jù)域..................................
172
7.6 類變量和類方法..........................
174
7.7 靜態(tài)方法......................................
176
7.8 使用屬性......................................
177
7.9 運算符重載和特殊方法...............
179
7.10 定制類........................................
182
7.11 迭代器........................................
185
7.12 生成器........................................
188
7.13 處理日期和時間........................
190
7.13.1 datetime 類.......................
190
7.13.2 timedelta 類......................
194
思考與練習........................................... 198
編程題.................................................. 200
第8 章
繼承和多態(tài)............................ 203
8.1 繼承的概念..................................
203
8.2 單繼承.........................................
204
8.3 覆蓋方法.....................................
206
8.4 object 類.......................................
207
8.5 多態(tài)和動態(tài)綁定..........................
207
8.6 鴨子類型.....................................
209
8.7 與對象和類相關的內置函數(shù).......
210
8.8 類之間的關系..............................
212
8.9 collections 模塊............................
215
8.10 多繼承.......................................
218
思考與練習........................................... 220
編程題.................................................. 221
第9 章
異常處理............................... 224
9.1 程序設計錯誤..............................
224
9.2 什么是異常..................................
225
9.3 如何處理異常..............................
225
9.4 內置異常類..................................
226
9.5 拋出異常.....................................
228
9.6 進一步討論異常處理..................
229
9.7 自定義異常類..............................
231
9.8 斷言.............................................
232
思考與練習........................................... 233
編程題.................................................. 233
第10 章
文件.................................... 236
10.1 文件的概念................................
236
10.2 文件操作....................................
237
10.3 文件讀寫....................................
238
10.3.1 文本文件讀寫..................
238
10.3.2 二進制文件讀寫..............
241
10.4 對象序列化................................
242
10.4.1 pickle 模塊.......................
242
10.4.2 JSON
................................ 243
10.5 內存文件....................................
246
10.5.1 StringIO
............................ 246
10.5.2 BytesIO.............................
247
10.6 CSV 文件....................................
247
10.7 電子表格文件............................
250
思考與練習........................................... 253
編程題.................................................. 253
參考文獻............................................. 255