《Python程式設計——計算思維視角》是2018年12月清華大學出版社出版的圖書,作者是陳杰華。
基本介紹
- 書名:Python程式設計——計算思維視角
- 作者:陳杰華
- ISBN:9787302513414
- 定價:49元
- 出版社:清華大學出版社
- 出版時間:2018年12月
內容簡介,圖書目錄,
內容簡介
本書共分兩部分,第一部分包括計算思維與Python簡介、算法、數據與計算、流程控制、函式、模組、數據檔案、面向對象編程、異常處寒體檔理、圖形界面設計和繪製曲線,為方便教學,每章最後均附有簡答題和編程題;第二部分給出了7個實驗,即數據與計算、流程控制、函式、數據檔案、面向對象編程、圖形界面設計和繪製曲線。
本書按課程教學模式來組織內容,既適合教師授課,也適合學生自學;同時,本書面向套用需求,教學內容先進,盡力幫助學生理解並掌握計算思維和編程技術。
本書內容豐富、圖文並茂,講解簡明易懂、循序漸進、深入淺出,可作為高等學校非計算機專業學生學習“Python程式設計”課程的教材,也可作為初學者、Python愛好者的輔助學習資料。
圖書目錄
第一部分基 礎 知 識
第1章計算思維與Python語言3
1.1程式設計3
1.1.1程式與電腦程式3
1.1.2程式設計步驟5
1.1.3程式設計語言6
1.1.4高級艱潤想語言分類7
1.2計算思維8
1.2.1計算思維概念9
1.2.2計算思維特徵11
1.3Python簡介12
1.3.1Python優點12
1.3.2Python缺點14
1.3.3Python主要套用15
1.4Python運行環境16
1.4.1Python下載辯頸嬸與安裝16
1.4.2Python幫助信息19
1.4.3Python資料夾結構21
1.4.4Python運行模式21
習題127第2章算法29
2.1程式設計方法29
2.1.1結構化程式設計方法29
2.1.2面向對象程式設計方法30
2.2算法32
2.2.1求解問題方式32
2.2.2算法概念32
2.2.3算法特徵32
2.3算法表示33
2.3.1使用自然語言描述算法33
2.3.2使用傳統流程圖描述算法34
2.3.3使用NS圖描述算法36
2.3.4使用偽代碼描述算法37
2.4常用算法介紹37
2.4.1簡單算法37
2.4.2階乘算法38
2.4.3求斐波那契數算法38
2.4.4求最大公約數算法39
2.4.5判斷素數算法40
2.5綜合算法介紹40
2.5.1數值計算40
2.5.2窮舉算法41
2.5.3查找算法43
2.5.4排序算法44
2.6疊代、遞推和遞歸46
2.6.1疊代46
2.6.2遞推47
2.6.3遞歸48
習題248第3章數據與計算50
3.1輸入輸出50
3.1.1輸入數據50
3.1.2輸出數據51
3.2編碼風格與簡單程式53
3.2.1編碼風格53
3.2.2簡單程式53
3.3組合符號54
3.3.1標識符54
3.3.2關鍵字55
3.3.3預定義標識符56
3.3.4命名規則57
3.4數據類型57
3.4.1數據類型及其分類57
3.4.2常量和變數58
3.5數字數據58
3.5.1整型數據58
3.5.2實型數據61
3.5.3分戀享探提數型數據62
3.5.4複數型數據62
3.6字元串型數據63
3.6.1字元串常量63
3.6.2轉義字元63
3.6.3字元串測試函式64
3.6.4字元串運算符65
3.6.5字元串內置函式66
3.7布爾型數據68
3.7.1關係運算68
3.7.2布爾常量69
3.7.3布爾運算69
3.8序列數據70
3.8.1列表70
3.8.2元組74
3.8.3字典74
3.8.4集合76
習題377第4章流程控制80
4.1簡單程式與流程控制80
4.1.1簡單辣射騙祖程式80
4.1.2流慨囑勸程控制語句81
4.1.3測試條件81
4.2分支選擇81
4.2.1單分支選擇82
4.2.2雙分支選擇83
4.2.3多分支選擇84
4.3循環控制86
4.3.1while語句86
4.3.2range()函式89
4.3.3for語句89
4.3.4循環嵌套94
4.3.5continue、break和pass語句98
4.4列表處理101
4.4.1一厚愉維列表102
4.4.2二維列表107
4.5查找與排序114
4.5.1折半查找114
4.5.2排序115
4.6字元串處理118
4.6.1單個字元串118
4.6.2多個字元串122
習題4123第5章函式125
5.1函式定義與調用125
5.1.1函式定義與調用125
5.1.2嵌套調用128
5.1.3返回值類型與函式類型129
5.1.4返回列表130
5.2形式參數與實在參數130
5.2.1簡單變數作為實參131
5.2.2一維列表作為實參137
5.2.3二維列表作為實參139
5.2.4可變參數139
5.3變數的作用域140
5.3.1全局變數與局部變數140
5.3.2global語句141
5.3.3變數同名143
5.4匿名函式144
5.4.1lambda函式144
5.4.2程式示例144
5.5遞歸函式145
5.5.1遞歸函式及其調用145
5.5.2程式示例145
習題5151第6章模組152
6.1模組152
6.1.1導入模組152
6.1.2導入模組成員153
6.1.3模組搜尋路徑154
6.2數值類模組155
6.2.1math模組155
6.2.2cmath模組157
6.2.3decimal模組157
6.2.4fractions模組159
6.3random模組161
6.3.1常用函式161
6.3.2程式示例163
6.4時間類模組165
6.4.1time模組167
6.4.2datetime模組171
6.4.3calendar模組172
6.5os模組174
6.5.1常用函式174
6.5.2程式示例176
6.6sys模組178
6.6.1常用函式178
6.6.2命令行參數179
6.7自定義模組180
6.7.1主模組181
6.7.2自定義模組示例182
6.7.3Python編譯檔案183
6.8自定義包183
6.8.1包與模組的組織結構183
6.8.2包與模組的導入184
6.8.3自定義包示例185
習題6187第7章數據檔案189
7.1檔案概述189
7.1.1引言189
7.1.2檔案分類189
7.2打開檔案與關閉檔案191
7.2.1打開檔案191
7.2.2關閉檔案193
7.3讀寫文本檔案193
7.3.1讀取檔案函式193
7.3.2讀取文本檔案194
7.3.3寫入文本檔案198
7.4讀寫二進制檔案200
7.4.1將字元串轉換為位元組數據201
7.4.2將位元組數據轉換為字元串201
7.4.3讀寫二進制檔案202
7.5struct模組202
7.5.1pack()、unpack()和calcsize()函式203
7.5.2程式示例204
7.6fileinput模組206
7.6.1fileinput模組206
7.6.2程式示例206
7.7codecs模組208
7.7.1讀取文本檔案209
7.7.2寫入文本檔案209
習題7210第8章面向對象編程212
8.1面向對象編程基礎212
8.1.1對象與類212
8.1.2對象特徵213
8.1.3繼承213
8.1.4多態性與重載214
8.2類的定義和引用215
8.2.1類的構成215
8.2.2類的定義與引用215
8.2.3構造函式和析構函式217
8.2.4實例變數219
8.2.5私有成員與公有成員220
8.2.6公有方法與私有方法221
8.3繼承222
8.3.1單繼承222
8.3.2多繼承223
8.3.3方法重寫224
8.4多態與運算符重載224
8.4.1多態224
8.4.2運算符重載225
習題8226第9章異常處理229
9.1程式錯誤及其處理229
9.1.1程式錯誤類型229
9.1.2程式運行錯誤處理方法232
9.2標準異常233
9.2.1標準異常233
9.2.2標準異常示例234
9.3拋出異常和捕捉異常235
9.3.1拋出異常235
9.3.2捕捉異常237
9.4斷言240
9.4.1斷言概念240
9.4.2assert語句240
9.5自定義異常類242
9.5.1引言242
9.5.2程式示例242
習題9243第10章圖形界面設計245
10.1Python圖形界面設計245
10.1.1Python圖形開發庫245
10.1.2Tkinter的常用組件與標準屬性246
10.1.3創建視窗246
10.2布局管理247
10.2.1pack布局的管理247
10.2.2grid布局的管理249
10.2.3place布局的管理251
10.3Tkinter的常用組件252
10.3.1Label組件252
10.3.2Button組件253
10.3.3Entry和Text組件255
10.3.4Listbox組件257
10.3.5Radiobutton和Checkbutton組件259
10.3.6Frame與LabelFrame組件261
10.3.7Scrollbar組件262
10.3.8Menu組件264
10.3.9對話框266
10.4事件處理271
10.4.1事件類型271
10.4.2事件綁定273
10.4.3鍵盤事件275
習題10276第11章繪製曲線278
11.1Canvas組件278
11.1.1Canvas對象及其通用屬性278
11.1.2螢幕坐標279
11.2繪製圖形279
11.2.1繪製直線、矩形和多邊形279
11.2.2繪製圓弧和橢圓282
11.3顯示點陣圖、圖像與文本285
11.3.1顯示點陣圖285
11.3.2顯示圖像286
11.3.3顯示文本287
11.4控制圖形288
11.4.1刪除圖形288
11.4.2移動圖形289
11.4.3位置坐標289
11.4.4縮放圖形290
11.4.5繪製函式圖形292
11.5體驗內置的turtle演示程式293
11.5.1利用IDLE內置程式293
11.5.2利用安裝資料夾中的演示程式294
11.6turtle繪圖296
11.6.1turtle模組296
11.6.2套用案例297
11.7分形圖形301
11.7.1Koch曲線301
11.7.2Hilbert曲線302
11.7.3分形樹304
11.8顯示字型306
11.8.1通過元組顯示字型306
11.8.2通過Font對象顯示字型307
習題11308
第二部分實驗
3.3.3預定義標識符56
3.3.4命名規則57
3.4數據類型57
3.4.1數據類型及其分類57
3.4.2常量和變數58
3.5數字數據58
3.5.1整型數據58
3.5.2實型數據61
3.5.3分數型數據62
3.5.4複數型數據62
3.6字元串型數據63
3.6.1字元串常量63
3.6.2轉義字元63
3.6.3字元串測試函式64
3.6.4字元串運算符65
3.6.5字元串內置函式66
3.7布爾型數據68
3.7.1關係運算68
3.7.2布爾常量69
3.7.3布爾運算69
3.8序列數據70
3.8.1列表70
3.8.2元組74
3.8.3字典74
3.8.4集合76
習題377第4章流程控制80
4.1簡單程式與流程控制80
4.1.1簡單程式80
4.1.2流程控制語句81
4.1.3測試條件81
4.2分支選擇81
4.2.1單分支選擇82
4.2.2雙分支選擇83
4.2.3多分支選擇84
4.3循環控制86
4.3.1while語句86
4.3.2range()函式89
4.3.3for語句89
4.3.4循環嵌套94
4.3.5continue、break和pass語句98
4.4列表處理101
4.4.1一維列表102
4.4.2二維列表107
4.5查找與排序114
4.5.1折半查找114
4.5.2排序115
4.6字元串處理118
4.6.1單個字元串118
4.6.2多個字元串122
習題4123第5章函式125
5.1函式定義與調用125
5.1.1函式定義與調用125
5.1.2嵌套調用128
5.1.3返回值類型與函式類型129
5.1.4返回列表130
5.2形式參數與實在參數130
5.2.1簡單變數作為實參131
5.2.2一維列表作為實參137
5.2.3二維列表作為實參139
5.2.4可變參數139
5.3變數的作用域140
5.3.1全局變數與局部變數140
5.3.2global語句141
5.3.3變數同名143
5.4匿名函式144
5.4.1lambda函式144
5.4.2程式示例144
5.5遞歸函式145
5.5.1遞歸函式及其調用145
5.5.2程式示例145
習題5151第6章模組152
6.1模組152
6.1.1導入模組152
6.1.2導入模組成員153
6.1.3模組搜尋路徑154
6.2數值類模組155
6.2.1math模組155
6.2.2cmath模組157
6.2.3decimal模組157
6.2.4fractions模組159
6.3random模組161
6.3.1常用函式161
6.3.2程式示例163
6.4時間類模組165
6.4.1time模組167
6.4.2datetime模組171
6.4.3calendar模組172
6.5os模組174
6.5.1常用函式174
6.5.2程式示例176
6.6sys模組178
6.6.1常用函式178
6.6.2命令行參數179
6.7自定義模組180
6.7.1主模組181
6.7.2自定義模組示例182
6.7.3Python編譯檔案183
6.8自定義包183
6.8.1包與模組的組織結構183
6.8.2包與模組的導入184
6.8.3自定義包示例185
習題6187第7章數據檔案189
7.1檔案概述189
7.1.1引言189
7.1.2檔案分類189
7.2打開檔案與關閉檔案191
7.2.1打開檔案191
7.2.2關閉檔案193
7.3讀寫文本檔案193
7.3.1讀取檔案函式193
7.3.2讀取文本檔案194
7.3.3寫入文本檔案198
7.4讀寫二進制檔案200
7.4.1將字元串轉換為位元組數據201
7.4.2將位元組數據轉換為字元串201
7.4.3讀寫二進制檔案202
7.5struct模組202
7.5.1pack()、unpack()和calcsize()函式203
7.5.2程式示例204
7.6fileinput模組206
7.6.1fileinput模組206
7.6.2程式示例206
7.7codecs模組208
7.7.1讀取文本檔案209
7.7.2寫入文本檔案209
習題7210第8章面向對象編程212
8.1面向對象編程基礎212
8.1.1對象與類212
8.1.2對象特徵213
8.1.3繼承213
8.1.4多態性與重載214
8.2類的定義和引用215
8.2.1類的構成215
8.2.2類的定義與引用215
8.2.3構造函式和析構函式217
8.2.4實例變數219
8.2.5私有成員與公有成員220
8.2.6公有方法與私有方法221
8.3繼承222
8.3.1單繼承222
8.3.2多繼承223
8.3.3方法重寫224
8.4多態與運算符重載224
8.4.1多態224
8.4.2運算符重載225
習題8226第9章異常處理229
9.1程式錯誤及其處理229
9.1.1程式錯誤類型229
9.1.2程式運行錯誤處理方法232
9.2標準異常233
9.2.1標準異常233
9.2.2標準異常示例234
9.3拋出異常和捕捉異常235
9.3.1拋出異常235
9.3.2捕捉異常237
9.4斷言240
9.4.1斷言概念240
9.4.2assert語句240
9.5自定義異常類242
9.5.1引言242
9.5.2程式示例242
習題9243第10章圖形界面設計245
10.1Python圖形界面設計245
10.1.1Python圖形開發庫245
10.1.2Tkinter的常用組件與標準屬性246
10.1.3創建視窗246
10.2布局管理247
10.2.1pack布局的管理247
10.2.2grid布局的管理249
10.2.3place布局的管理251
10.3Tkinter的常用組件252
10.3.1Label組件252
10.3.2Button組件253
10.3.3Entry和Text組件255
10.3.4Listbox組件257
10.3.5Radiobutton和Checkbutton組件259
10.3.6Frame與LabelFrame組件261
10.3.7Scrollbar組件262
10.3.8Menu組件264
10.3.9對話框266
10.4事件處理271
10.4.1事件類型271
10.4.2事件綁定273
10.4.3鍵盤事件275
習題10276第11章繪製曲線278
11.1Canvas組件278
11.1.1Canvas對象及其通用屬性278
11.1.2螢幕坐標279
11.2繪製圖形279
11.2.1繪製直線、矩形和多邊形279
11.2.2繪製圓弧和橢圓282
11.3顯示點陣圖、圖像與文本285
11.3.1顯示點陣圖285
11.3.2顯示圖像286
11.3.3顯示文本287
11.4控制圖形288
11.4.1刪除圖形288
11.4.2移動圖形289
11.4.3位置坐標289
11.4.4縮放圖形290
11.4.5繪製函式圖形292
11.5體驗內置的turtle演示程式293
11.5.1利用IDLE內置程式293
11.5.2利用安裝資料夾中的演示程式294
11.6turtle繪圖296
11.6.1turtle模組296
11.6.2套用案例297
11.7分形圖形301
11.7.1Koch曲線301
11.7.2Hilbert曲線302
11.7.3分形樹304
11.8顯示字型306
11.8.1通過元組顯示字型306
11.8.2通過Font對象顯示字型307
習題11308
第二部分實驗