本書以零基礎(chǔ)為起點(diǎn)介紹Python程序設(shè)計(jì)方法。各章內(nèi)容由淺入深、相互銜接、前后呼應(yīng)、循序漸進(jìn)。為了提高讀者對(duì)程序設(shè)計(jì)思想方法的理解,本書將程序設(shè)計(jì)語(yǔ)言模型與人類自然語(yǔ)言模型進(jìn)行了比較,使讀者對(duì)程序設(shè)計(jì)語(yǔ)言模型及其內(nèi)容的理解有了完整的參照對(duì)象。全書各章節(jié)選用大量程序設(shè)計(jì)語(yǔ)言經(jīng)典實(shí)例來(lái)講解基本概念和程序設(shè)計(jì)方法,同時(shí)配有大量習(xí)題供讀者練習(xí)。本書共12章,主要內(nèi)容包括程序設(shè)計(jì)語(yǔ)言緒論、對(duì)象與類型、運(yùn)算符與表達(dá)式、程序控制結(jié)構(gòu)、函數(shù)、列表與元組、字典與集合、文件與目錄、模塊、錯(cuò)誤與異常、面向?qū)ο缶幊、圖形用戶界面編程。本書語(yǔ)言表達(dá)嚴(yán)謹(jǐn),文字流暢,內(nèi)容通俗易懂、重點(diǎn)突出、實(shí)例豐富,適合作為高等院校各專業(yè)程序設(shè)計(jì)語(yǔ)言課程的教材,還可作為全國(guó)計(jì)算機(jī)二級(jí)考試的參考用書。
作者團(tuán)隊(duì)強(qiáng)大,符合二級(jí)等考要求,可作為非計(jì)算機(jī)專業(yè)*門程序設(shè)計(jì)課程教材
目前,在教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會(huì)的指導(dǎo)下,計(jì)算機(jī)基礎(chǔ)課程教學(xué)改革工作在不斷推進(jìn)深入。程序設(shè)計(jì)語(yǔ)言課程是大學(xué)生必須掌握的計(jì)算機(jī)基礎(chǔ)課程,大學(xué)生們通過(guò)這門課程的學(xué)習(xí),應(yīng)該掌握程序設(shè)計(jì)的基本方法,具備用程序解決問(wèn)題的能力。如何選擇某種程序設(shè)計(jì)語(yǔ)言作為高等學(xué)校大學(xué)生程序設(shè)計(jì)課程的語(yǔ)言環(huán)境,是各校計(jì)算機(jī)基礎(chǔ)教育工作者研究的課題之一。Python語(yǔ)言作為一門開源語(yǔ)言,已被許多學(xué)校引入教學(xué)過(guò)程。它是面向?qū)ο蠛瓦^(guò)程的程序設(shè)計(jì)語(yǔ)言,具有無(wú)界整數(shù)數(shù)據(jù)類型及豐富的數(shù)據(jù)結(jié)構(gòu)、可移植性強(qiáng)、語(yǔ)言簡(jiǎn)潔、程序可讀性強(qiáng)等特點(diǎn)。根據(jù)實(shí)際教學(xué)經(jīng)驗(yàn),在程序設(shè)計(jì)課程教學(xué)改革研究時(shí),我們選用Python語(yǔ)言作為程序設(shè)計(jì)課程的語(yǔ)言環(huán)境。對(duì)本書內(nèi)容的選擇,我們力求面向讀者,以程序設(shè)計(jì)零基礎(chǔ)為起點(diǎn),全面介紹了包括面向過(guò)程和面向?qū)ο蟮腜ython程序設(shè)計(jì)方法。讓讀者首先接受面向?qū)ο蟮某绦蛟O(shè)計(jì)的思想方法,并理解面向?qū)ο蟮某绦蛟O(shè)計(jì)是需要以面向過(guò)程的程序設(shè)計(jì)方法作為基礎(chǔ)的。
全書共分為12章,第1章介紹程序設(shè)計(jì)語(yǔ)言入門與Python語(yǔ)言開發(fā)環(huán)境;第2章介紹對(duì)象與類型;第3章介紹運(yùn)算符與表達(dá)式;第4章介紹程序控制結(jié)構(gòu);第5章介紹函數(shù);第6章介紹列表與元組;第7章介紹字典與集合;第8章介紹文件與目錄;第9章介紹模塊;第10章介紹錯(cuò)誤與異常;第11章介紹面向?qū)ο缶幊;?2章介紹圖形用戶界面編程。
本書編者長(zhǎng)期從事程序設(shè)計(jì)課程的教學(xué)工作,并利用各種語(yǔ)言開發(fā)工具開發(fā)了許多軟件項(xiàng)目,具有豐富的教學(xué)經(jīng)驗(yàn)和較強(qiáng)的科學(xué)研究能力。編者本著加強(qiáng)基礎(chǔ)、注重實(shí)踐、強(qiáng)調(diào)思想方法的教學(xué)、突出應(yīng)用能力和創(chuàng)新能力培養(yǎng)的原則,力求使本書有較強(qiáng)的可讀性、適用性和先進(jìn)性。我們的教學(xué)理念是:教學(xué)是教思想、教方法,真正做到授人以魚,不如授人以漁。為了加強(qiáng)讀者對(duì)程序設(shè)計(jì)思想方法的理解,本書將程序設(shè)計(jì)語(yǔ)言模型與人類自然語(yǔ)言模型相比較,讓讀者對(duì)程序設(shè)計(jì)語(yǔ)言模型及其內(nèi)容的理解有了完整的參照對(duì)象。為了提高讀者的編程技巧,書中選用了大量的經(jīng)典例題,這些例題與相應(yīng)章節(jié)的內(nèi)容是完全吻合的,例題還備有多種可能的解答,以期拓展讀者的解題思路。為了便于讀者自學(xué),全書在內(nèi)容組織、編排上注重由淺入深、循序漸進(jìn)。因此,本書適合作為高等院校各專業(yè)程序設(shè)計(jì)課程的教材,也可作為廣大計(jì)算機(jī)愛好者的自學(xué)參考用書。教師選用本書作為大學(xué)生程序設(shè)計(jì)課程的教材時(shí),可根據(jù)實(shí)際教學(xué)課時(shí)數(shù)調(diào)整或取舍內(nèi)容。
本書所給出的程序示例均在Python 3.3環(huán)境下進(jìn)行了調(diào)試和運(yùn)行。為了幫助讀者更好地學(xué)習(xí)Python,編者在每章后還編寫了大量的習(xí)題供讀者練習(xí)。
本書由楊長(zhǎng)興主編,并負(fù)責(zé)全書的總體策劃、統(tǒng)稿和定稿工作。肖峰教授協(xié)助主編完成統(tǒng)稿、定稿工作。各章參加編寫人員:中南大學(xué)楊長(zhǎng)興(第1章);大連醫(yī)科大學(xué)肖峰、河北醫(yī)科大學(xué)李連捷(第2、3章);中山大學(xué)劉燕(第4章);北京大學(xué)郭永青(第5章);首都醫(yī)科大學(xué)夏翃(第6章);中南大學(xué)田琪、李利明、李小蘭(第7、8章);復(fù)旦大學(xué)韓絳青、武警后勤學(xué)院孫納新(第9、10章);中南大學(xué)周春艷、劉衛(wèi)國(guó)、朱從旭(第11章);肖峰、中南大學(xué)周肆清、羅芳、奎曉燕(第12章)。
本書的編寫得到了清華大學(xué)譚浩強(qiáng)教授、吳文虎教授的指導(dǎo)與幫助,在此一并表示衷心感謝。在本書的編寫過(guò)程中,中南大學(xué)邵自然、呂格莉、裘嶸、楊莉軍、曹丹等老師參與了大綱的討論,本書吸收了他們?cè)S多寶貴的意見和建議,在此一并表示衷心感謝。編者在編寫本書的過(guò)程中參考了大量的文獻(xiàn)資料,在此也向這些文獻(xiàn)資料的作者表示衷心感謝。
由于編者水平所限,書中疏漏及不妥之處在所難免,敬請(qǐng)讀者不吝賜教。
編 者
2016年6月
楊長(zhǎng)興,男,1962年3月出生,湖南安鄉(xiāng)人。中南大學(xué)信息科學(xué)與工程學(xué)院教授、計(jì)算中心主任。教育部2006-2010年、2013-2017年大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會(huì)委員;全國(guó)高校計(jì)算機(jī)基礎(chǔ)教育研究會(huì)醫(yī)學(xué)專業(yè)委員會(huì)副主任委員;湖南省高教學(xué)會(huì)計(jì)算機(jī)教育專業(yè)委員會(huì)常務(wù)理事。主要研究方向?yàn)榫W(wǎng)格技術(shù)、醫(yī)學(xué)信息表達(dá)與處理。近年在國(guó)家自然科學(xué)核心期刊發(fā)表學(xué)術(shù)論文30余篇;主編出版著作10余部;主持或參與國(guó)家自然科學(xué)基金和省級(jí)自然科學(xué)基金項(xiàng)目多項(xiàng);多次參加國(guó)際國(guó)內(nèi)醫(yī)藥信息科學(xué)學(xué)術(shù)活動(dòng)。長(zhǎng)期從事計(jì)算機(jī)專業(yè)和基礎(chǔ)課程教學(xué),在教學(xué)理念、教學(xué)內(nèi)容與方法上有比較豐富的經(jīng)驗(yàn)。
第1章 程序設(shè)計(jì)語(yǔ)言緒論 1
1.1 計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言概述 1
1.2 程序的編譯與解釋 3
1.3
Python語(yǔ)言 4
1.3.1
Python語(yǔ)言及其特點(diǎn) 4
1.3.2
第一個(gè)Python語(yǔ)言程序示例 5
1.3.3
Python語(yǔ)言程序的書寫規(guī)范 6
1.4 配置Python語(yǔ)言的開發(fā)環(huán)境 6
1.5 編寫程序的基本步驟 8
1.6 算法與流程圖 9
1.6.1
算法 9
1.6.2
流程圖 10
小結(jié) 11
習(xí)題 11
第2章 對(duì)象與類型 12
2.1 對(duì)象的基本概念 12
2.2 變量與對(duì)象的關(guān)系 13
2.2.1
變量引用對(duì)象 13
2.2.2
多個(gè)變量共享引用同一對(duì)象 14
2.2.3
對(duì)象的刪除 14
2.3 對(duì)象類型 15
2.4 數(shù)字 15
2.4.1
整數(shù)類型 15
2.4.2
浮點(diǎn)數(shù) 16
2.4.3
復(fù)數(shù) 16
2.5 字符串 16
2.5.1
字符串的基本使用方法 16
2.5.2
索引、切片操作 17
2.5.3
單個(gè)字符的字符串問(wèn)題 18
2.5.4
字符串的函數(shù)與方法 19
2.6 字節(jié)串和字節(jié)數(shù)組 20
小結(jié) 21
習(xí)題 21
第3章 運(yùn)算符與表達(dá)式 22
3.1 數(shù)字對(duì)象的運(yùn)算 22
3.1.1
算術(shù)運(yùn)算 22
3.1.2
關(guān)系運(yùn)算 23
3.1.3
邏輯運(yùn)算 24
3.1.4
移位和按位邏輯運(yùn)算 25
3.1.5
條件表達(dá)式 26
3.1.6
標(biāo)準(zhǔn)類型操作符 26
3.2 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性
26
3.3 常用函數(shù) 27
3.3.1
常用內(nèi)置函數(shù) 27
3.3.2
數(shù)學(xué)函數(shù)庫(kù)的函數(shù)應(yīng)用 31
3.4 常用的字符串方法 33
3.5 有關(guān)字節(jié)串和字節(jié)數(shù)組的方法
36
小結(jié) 37
習(xí)題 37
第4章 程序控制結(jié)構(gòu) 39
4.1 順序結(jié)構(gòu) 39
4.1.1
賦值語(yǔ)句 39
4.1.2
基本輸入/輸出 40
4.2 分支結(jié)構(gòu) 41
4.2.1
if語(yǔ)句(單分支) 42
4.2.2
if...else語(yǔ)句(雙分支) 42
4.2.3
if...elif語(yǔ)句(多分支) 43
4.2.4
if語(yǔ)句和if... else語(yǔ)句的嵌套形式 44
4.3 循環(huán)語(yǔ)句 45
4.3.1
while語(yǔ)句 45
4.3.2
for 語(yǔ)句 47
4.3.3
多重循環(huán) 49
4.4
pass、break、continue、else語(yǔ)句 50
4.4.1
pass 語(yǔ)句 50
4.4.2
break 語(yǔ)句 50
4.4.3
continue語(yǔ)句 51
4.4.4
else語(yǔ)句 52
4.5 程序?qū)嵗?52
小結(jié) 60
習(xí)題 60
第5章 函數(shù) 62
5.1 函數(shù)的概念 62
5.2 函數(shù)的定義與調(diào)用 63
5.2.1
函數(shù)定義 63
5.2.2
函數(shù)調(diào)用 64
5.2.3
函數(shù)的返回值 65
5.3 參數(shù)傳遞方式 66
5.4 變量作用域 66
5.5 嵌套調(diào)用與遞歸調(diào)用 71
5.5.1
函數(shù)的嵌套調(diào)用 71
5.5.2
函數(shù)的遞歸調(diào)用 72
小結(jié) 75
習(xí)題 75
第6章 列表與元組 78
6.1 序列 78
6.1.1
序列模型 78
6.1.2
序列操作及操作符 79
6.1.3
序列相關(guān)的內(nèi)置函數(shù) 80
6.2 列表 80
6.2.1
列表的基本操作 81
6.2.2
列表可用的操作符 82
6.2.3
列表可用的函數(shù)(方法) 84
6.2.4
列表的應(yīng)用 87
6.3 元組 91
6.3.1
元組的定義與操作 92
6.3.2
元組的特殊性質(zhì)及作用 92
6.4
Python對(duì)象的淺復(fù)制與深復(fù)制 93
小結(jié) 95
習(xí)題 95
第7章 字典與集合 96
7.1 字典 96
7.1.1
字典的基本操作 96
7.1.2
字典可用的操作符 98
7.1.3
字典可用的函數(shù)與方法 99
7.2 集合 103
7.2.1
集合的基本操作 104
7.2.2
集合可用的操作符 106
7.2.3
集合可用的函數(shù)與方法 109
7.3 字典與集合的應(yīng)用 110
小結(jié) 111
習(xí)題 111
第8章 文件與目錄 113
8.1 文件的打開與關(guān)閉 113
8.1.1
文件的打開 113
8.1.2
文件的關(guān)閉 115
8.2 文件的讀/寫 115
8.2.1
用于讀/寫的方法 115
8.2.2
文件讀/寫實(shí)例 116
8.3 文件目錄 119
小結(jié) 120
習(xí)題 120
第9章 模塊 121
9.1 名稱空間 121
9.2 導(dǎo)入模塊 122
小結(jié) 123
習(xí)題 123
第10章 錯(cuò)誤與異常 124
10.1
異常 124
10.1.1
異常的概念 124
10.1.2
Python中的異常 125
10.2
異常的檢測(cè)與處理 126
10.2.1
try ... except語(yǔ)句 127
10.2.2
try ... except ... else語(yǔ)句 127
10.2.3
帶有多個(gè)except子句的try語(yǔ)句 128
10.2.4
finally子句 129
10.2.5
捕獲所有異常 129
10.3
斷言語(yǔ)句與上下文管理語(yǔ)句 129
10.3.1
斷言語(yǔ)句(assert語(yǔ)句) 129
10.3.2 上下文管理語(yǔ)句(with語(yǔ)句) 130
10.4
raise語(yǔ)句 130
小結(jié) 132
習(xí)題 132
第11章 面向?qū)ο缶幊?133
11.1
面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 133
11.2
類與實(shí)例 136
11.2.1
類的定義與屬性 136
11.2.2
實(shí)例的聲明 137
11.2.3
構(gòu)造器方法與解構(gòu)器方法 138
11.2.4
實(shí)例屬性 140
11.3
派生與繼承 142
11.3.1
子類的創(chuàng)建(派生) 142
11.3.2
標(biāo)準(zhǔn)類型派生的子類 143
11.3.3
繼承 143
11.4
重載 146
11.5
類、實(shí)例可用的內(nèi)置函數(shù) 147
小結(jié) 150
習(xí)題 150
第12章 圖形用戶界面編程 152
12.1
常用GUI 模塊介紹 152
12.2
tkinter模塊 153
12.2.1
使用tkinter編程的基本步驟 153
12.2.2
tkinter組件 154
12.2.3
標(biāo)準(zhǔn)屬性 155
12.2.4
組件布局 158
12.2.5
主窗口的屬性 161
12.3
標(biāo)簽組件 161
12.4
按鈕 163
12.5
輸入框 166
12.6
選擇按鈕與單選按鈕 171
12.6.1
選擇按鈕 172
12.6.2
單選按鈕 173
12.6.3
選擇按鈕與單選按鈕應(yīng)用示例 174
12.7
框架與標(biāo)簽框架 176
12.8
菜單 177
12.8.1
菜單欄菜單 177
12.8.2
在菜單欄菜單中創(chuàng)建選擇按鈕與單選按鈕 179
12.8.3
彈出式菜單 180
12.9
列表框 181
12.10
滾動(dòng)條與進(jìn)度條 183
12.10.1
滾動(dòng)條 184
12.10.2
進(jìn)度條 184
12.11
畫布 186
12.11.1
畫布組件的基本用法 186
12.11.2
畫布組件中的對(duì)象創(chuàng)建 188
12.11.3
畫布應(yīng)用的簡(jiǎn)單示例 191
小結(jié) 192
習(xí)題 193
參考文獻(xiàn) 194