本書以Python語言及其環(huán)境為工具,系統(tǒng)講解算法的概念、程序設(shè)計(jì)的基本思想以及常用的程序設(shè)計(jì)方法。主要內(nèi)容包括:程序設(shè)計(jì)基礎(chǔ)知識(shí)與Python程序設(shè)計(jì)的基本方法;數(shù)據(jù)類型的概念及Python程序中的操作方法;算法的概念及應(yīng)用;類和對(duì)象的概念及應(yīng)用;用戶界面設(shè)計(jì)的一般方法和技能;數(shù)據(jù)文件、數(shù)據(jù)庫(kù)操作的一般方法。 本書注重程序設(shè)計(jì)理念的先進(jìn)性、程序設(shè)計(jì)方法的實(shí)用性以及學(xué)習(xí)過程中的思維連貫性,精心選取必要且實(shí)用的教學(xué)內(nèi)容,并根據(jù)教學(xué)或者自學(xué)過程中的實(shí)際需求進(jìn)行編排和講解。
姚普選,理學(xué)碩士,高級(jí)工程師。1978年3月參加工作。1995年從西安交通大學(xué)理學(xué)院調(diào)入該校電信學(xué)院,從事計(jì)算機(jī)基礎(chǔ)課教學(xué)工作。1996年8月退休。主講過計(jì)算機(jī)程序設(shè)計(jì)(C++、Delphi、Visual BASIC、C#、Python等)、軟件開發(fā)技術(shù)基礎(chǔ)、大學(xué)計(jì)算機(jī)基礎(chǔ)、微機(jī)原理及接口技術(shù)、數(shù)據(jù)庫(kù)(dBASE、Access、SQL Server等)、數(shù)據(jù)結(jié)構(gòu)等多門計(jì)算機(jī)課程,其中前4門都是***精品課程。
目錄
第1章 程序及程序的運(yùn)行\(zhòng)t1
1.1 程序及程序運(yùn)行的一般方式\t1
1.1.1 程序的一般結(jié)構(gòu)\t1
1.1.2 程序設(shè)計(jì)語言的種類及特點(diǎn)\t4
1.1.3 程序運(yùn)行的一般方式\t6
1.2 Python程序設(shè)計(jì)的一般過程\t9
1.2.1 使用Python解釋器執(zhí)行程序\t9
1.2.2 使用集成開發(fā)環(huán)境編寫Python程序\t12
1.2.3 Python程序的執(zhí)行方式\t14
程序解析1\t16
程序1-1 計(jì)算并聯(lián)電阻\t16
程序1-2 求解二元一次方程組\t17
程序1-3 三個(gè)整數(shù)排序\t19
實(shí)驗(yàn)指導(dǎo)1\t20
實(shí)驗(yàn)1-1 安裝并試用Python IDLE\t20
實(shí)驗(yàn)1-2 編寫并運(yùn)行Python程序\t24
第2章 數(shù)據(jù)的計(jì)算機(jī)表示與操作\t27
2.1 數(shù)值型數(shù)據(jù)和邏輯型數(shù)據(jù)\t27
2.1.1 標(biāo)識(shí)符和名字\t27
2.1.2 數(shù)字與布爾值\t29
2.1.3 數(shù)值型變量與邏輯型變量\t30
2.1.4 內(nèi)存組織與變量引用\t31
2.1.5 常用內(nèi)置函數(shù)\t33
2.2 數(shù)據(jù)的運(yùn)算及輸入/輸出\t35
2.2.1 運(yùn)算符與表達(dá)式\t35
2.2.2 運(yùn)算順序\t38
2.2.3 數(shù)據(jù)的輸入/輸出\t39
2.3 序列和字典\t41
2.3.1 字符串的種類及運(yùn)算\t41
2.3.2 列表的特點(diǎn)及運(yùn)算\t43
2.3.3 元組的特點(diǎn)及運(yùn)算\t45
2.3.4 字典的特點(diǎn)及運(yùn)算\t46
程序解析2\t49
程序2-1 判定一個(gè)5位或者4位整數(shù)是否為回文數(shù)\t49
程序2-2 判斷某日是當(dāng)年第幾天\t52
程序2-3 計(jì)算購(gòu)物金額\t53
實(shí)驗(yàn)指導(dǎo)2\t55
實(shí)驗(yàn)2-1 表達(dá)式求值\t55
實(shí)驗(yàn)2-2 編寫并運(yùn)行程序\t57
第3章 算法及程序的控制結(jié)構(gòu)\t60
3.1 算法與程序設(shè)計(jì)\t60
3.1.1 算法的概念\t60
3.1.2 算法的描述\t62
3.1.3 算法的基本特征\t63
3.1.4 結(jié)構(gòu)化程序設(shè)計(jì)思想\t64
3.1.5 算法中的數(shù)據(jù)處理和控制結(jié)構(gòu)\t66
3.1.6 算法求解與解析解\t69
3.2 程序中的分支語句和循環(huán)語句\t71
3.2.1 分支語句\t71
3.2.2 while語句\t72
3.2.3 for語句\t74
3.2.4 循環(huán)語句和選擇語句的嵌套\t76
3.2.5 循環(huán)控制語句\t77
3.3 遞推和迭代\t78
3.3.1 遞推法\t79
3.3.2 倒推法\t80
3.3.3 遞推法與代數(shù)解法\t82
3.3.4 迭代法\t83
程序解析3\t85
程序3-1 四則算術(shù)計(jì)算器\t85
程序3-2 查找指定范圍內(nèi)的完全數(shù)\t87
程序3-3 約瑟夫問題\t89
程序3-4 驗(yàn)證哥德巴赫猜想\t91
程序3-5 求多項(xiàng)式的值\t93
實(shí)驗(yàn)指導(dǎo)3\t95
實(shí)驗(yàn)3-1 三種基本結(jié)構(gòu)\t95
實(shí)驗(yàn)3-2 倒推法、遞推法與迭代法及其他算法\t98
第4章 函數(shù)與模塊\t101
4.1 函數(shù)及函數(shù)的參數(shù)\t101
4.1.1 函數(shù)的定義和調(diào)用\t101
4.1.2 參數(shù)的傳遞\t103
4.1.3 參數(shù)的種類\t105
4.2 函數(shù)的嵌套與遞歸調(diào)用\t106
4.2.1 函數(shù)的嵌套\t106
4.2.2 變量的作用域\t108
4.2.3 函數(shù)的遞歸調(diào)用\t110
4.2.4 遞歸函數(shù)\t112
4.2.5 尾遞歸\t113
4.3 函數(shù)式程序設(shè)計(jì)\t115
4.3.1 函數(shù)式程序中的函數(shù)\t115
4.3.2 匿名函數(shù)\t117
4.3.3 內(nèi)置高階函數(shù)\t119
4.3.4 控制結(jié)構(gòu)的函數(shù)式轉(zhuǎn)換\t120
4.3.5 閉包及裝飾器\t123
4.3.6 迭代器與生成器\t125
4.3.7 偏函數(shù)\t127
程序解析4\t128
程序4-1 鑒別一個(gè)日期是否有效\t128
程序4-2 查找指定范圍內(nèi)的循環(huán)素?cái)?shù)\t130
程序4-3 利用蒙特卡羅法計(jì)算定積分\t131
程序4-4 對(duì)數(shù)組中各元素進(jìn)行二路歸并排序\t134
程序4-5 通過埃拉托色尼篩法尋找指定范圍內(nèi)的素?cái)?shù)\t135
程序4-6 使用裝飾器檢測(cè)函數(shù)的執(zhí)行時(shí)間和時(shí)長(zhǎng)\t138
實(shí)驗(yàn)指導(dǎo)4\t139
實(shí)驗(yàn)4-1 函數(shù)的定義和調(diào)用\t139
實(shí)驗(yàn)4-2 函數(shù)的嵌套與遞歸調(diào)用\t142
實(shí)驗(yàn)4-3 函數(shù)式程序設(shè)計(jì)\t144
第5章 面向?qū)ο蟪绦蛟O(shè)計(jì)\t146
5.1 類及類的實(shí)例\t146
5.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)思想\t146
5.1.2 類的定義\t148
5.1.3 類的實(shí)例\t150
5.1.4 類的私有成員\t152
5.1.5 類方法和靜態(tài)方法\t153
5.2 類的繼承性和多態(tài)性\t155
5.2.1 面向?qū)ο蟪绦虻奶攸c(diǎn)\t155
5.2.2 類的繼承\(zhòng)t156
5.2.3 類的組合\t158
5.2.4 類的多重繼承\(zhòng)t159
5.2.5 函數(shù)和運(yùn)算符重載\t161
5.2.6 類的多態(tài)性\t164
5.3 模塊與包\t167
5.3.1 模塊\t167
5.3.2 命名空間\t170
5.3.3 包\t171
程序解析5\t173
程序5-1 員工評(píng)優(yōu)的命令式程序、函數(shù)式程序和面向?qū)ο蟪绦騖t173
程序5-2 組合實(shí)現(xiàn)點(diǎn)類、圓類和矩形類\t176
程序5-3 繼承與組合實(shí)現(xiàn)通訊錄類\t178
程序5-4 包含類方法和靜態(tài)方法的日期類\t180
實(shí)驗(yàn)指導(dǎo)5\t183
實(shí)驗(yàn)5-1 類的定義及實(shí)例的操作\t183
實(shí)驗(yàn)5-2 類的繼承性\t185
第6章 異常處理及程序調(diào)試\t189
6.1 異常處理\t189
6.1.1 處理異常情況的傳統(tǒng)方式\t189
6.1.2 Python的異常處理機(jī)制\t191
6.1.3 異常對(duì)象及自定義異常\t192
6.2 程序的測(cè)試和調(diào)試\t194
6.2.1 程序測(cè)試方式及白盒測(cè)試用例設(shè)計(jì)\t194
6.2.2 黑盒測(cè)試及測(cè)試用例設(shè)計(jì)\t196
6.2.3 命令行參數(shù)\t198
6.2.4 使用斷言調(diào)試程序\t201
6.2.5 使用日志調(diào)試程序\t202
6.2.6 使用pdb包調(diào)試程序\t203
程序解析6\t205
程序6-1 try…except結(jié)構(gòu)實(shí)現(xiàn)的文本文件查找操作\t205
程序6-2 自定義異常――求解三角形面積\t207
程序6-3 用于邏輯覆蓋測(cè)試的程序\t209
程序6-4 使用命令行參數(shù)和日志求解斐波那契序列\(zhòng)t210
實(shí)驗(yàn)指導(dǎo)6\t213
實(shí)驗(yàn)6-1 異常的捕捉與處理\t213
實(shí)驗(yàn)6-2 程序的測(cè)試和調(diào)試\t215
第7章 圖形用戶界面程序\t217
7.1 創(chuàng)建GUI程序\t217
7.1.1 創(chuàng)建GUI窗體\t217
7.1.2 控件及其屬性\t219
7.1.3 控件的布局\t222
7.1.4 事件處理\t223
7.2 菜單與對(duì)話框\t226
7.2.1 菜單欄與彈出菜單\t227
7.2.2 標(biāo)準(zhǔn)消息框\t229
7.2.3 標(biāo)準(zhǔn)輸入對(duì)話框\t231
7.2.4 標(biāo)準(zhǔn)文件對(duì)話框\t232
7.2.5 標(biāo)準(zhǔn)顏色對(duì)話框\t234
7.3 繪圖程序\t235
7.3.1 Canvas組件\t236
7.3.2 Canvas組件的功能\t237
7.3.3 Turtle庫(kù)的畫圖命令\t239
7.3.4 Turtle庫(kù)的控制命令\t240
程序解析7\t242
程序7-1 獎(jiǎng)金計(jì)算器\t243
程序7-2 四則運(yùn)算器\t245
程序7-3 貨款計(jì)算器\t247
程序7-4 畫幾何圖形程序\t249
程序7-5 調(diào)用Tkinter庫(kù)的Canvas組件畫函數(shù)圖像\t251
程序7-6 導(dǎo)入Turtle庫(kù)畫函數(shù)圖像\t253
實(shí)驗(yàn)指導(dǎo)7\t254
實(shí)驗(yàn)7-1 創(chuàng)建GUI程序\t255
實(shí)驗(yàn)7-2 創(chuàng)建使用菜單和對(duì)話框的程序\t257
實(shí)驗(yàn)7-3 創(chuàng)建繪圖程序\t259
第8章 數(shù)據(jù)查找與存取\t261
8.1 文字的計(jì)算機(jī)表示\t261
8.1.1 ASCII碼\t261
8.1.2 GB 2312―80漢字編碼標(biāo)準(zhǔn)\t263
8.1.3 GB 18030漢字編碼標(biāo)準(zhǔn)\t265
8.1.4 Unicode標(biāo)準(zhǔn)\t268
8.1.5 Unicode字符的存儲(chǔ)格式\t270
8.2 正則表達(dá)式\t272
8.2.1 正則表達(dá)式概念\t272
8.2.2 正則表達(dá)式模式\t273
8.2.3 正則表達(dá)式中的元字符\t275
8.2.4 正則表達(dá)式對(duì)象\t277
8.2.5 正則表達(dá)式的匹配\t279
8.2.6 正則表達(dá)式的切分、分組與替換\t281
8.3 數(shù)據(jù)文件的存取\t282
8.3.1 數(shù)據(jù)文件的概念\t282
8.3.2 文件的打開和關(guān)閉\t284
8.3.3 文件的打開模式\t285
8.3.4 文件對(duì)象的屬性\t287
8.3.5 文件的讀取和寫入\t288
8.4 簡(jiǎn)單爬蟲\t289
8.4.1 HTTP協(xié)議與URL網(wǎng)址\t289
8.4.2 HTTP請(qǐng)求與響應(yīng)\t290
8.4.3 爬取靜態(tài)網(wǎng)頁(yè)\t292
8.4.4 Request對(duì)象\t293
8.4.5 爬蟲基本流程\t295
程序解析8\t297
程序8-1 正則表達(dá)式的使用\t298
程序8-2 爬取一個(gè)網(wǎng)頁(yè)上的所有批圖片\t299
程序8-3 爬取同一個(gè)URL的多個(gè)分頁(yè)\t301
實(shí)驗(yàn)指導(dǎo)8\t303
實(shí)驗(yàn)8-1 正則表達(dá)式中元字符的使用\t303
實(shí)驗(yàn)8-2 正則表達(dá)式的綜合應(yīng)用\t305
實(shí)驗(yàn)8-3 簡(jiǎn)單爬蟲及數(shù)據(jù)文件讀/寫\t306
第9章 數(shù)據(jù)庫(kù)連接與操縱\t308
9.1 數(shù)據(jù)庫(kù)系統(tǒng)組成\t308
9.1.1 數(shù)據(jù)庫(kù)的概念\t308
9.1.2 數(shù)據(jù)庫(kù)系統(tǒng)的功能\t310
9.1.3 數(shù)據(jù)庫(kù)系統(tǒng)組成\t311
9.2 數(shù)據(jù)庫(kù)管理系統(tǒng)\t313
9.2.1 關(guān)系數(shù)據(jù)庫(kù)\t313
9.2.2 數(shù)據(jù)庫(kù)管理系統(tǒng)的功能\t315
9.2.3 常見數(shù)據(jù)庫(kù)管理系統(tǒng)\t316
9.3 SQL及其數(shù)據(jù)庫(kù)操作\t318
9.3.1 SQL的功能與特點(diǎn)\t318
9.3.2 SQL語句\t320
9.3.3 創(chuàng)建SQLite數(shù)據(jù)庫(kù)\t323
9.3.4 SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢與更新\t325
9.3.5 Python程序操作SQLite數(shù)據(jù)庫(kù)\t327
程序解析9\t329
程序9-1 創(chuàng)建SQLite數(shù)據(jù)庫(kù)\t329
程序9-2 SQLite庫(kù)的數(shù)據(jù)錄入\t331
程序9-3 SQLite庫(kù)的數(shù)據(jù)查詢\t332
實(shí)驗(yàn)指導(dǎo)9\t334
實(shí)驗(yàn)9-1 創(chuàng)建產(chǎn)品數(shù)據(jù)庫(kù)\t334
實(shí)驗(yàn)9-2 產(chǎn)品數(shù)據(jù)庫(kù)的數(shù)據(jù)錄入、查詢與修改\t335
參考文獻(xiàn)\t337