本書以零基礎(chǔ)為起點介紹Python程序設(shè)計方法。各章內(nèi)容由淺入深、相互銜接、前后呼應(yīng)、循序漸進。為了提高讀者對程序設(shè)計思想方法的理解,本書將程序設(shè)計語言模型與人類自然語言模型進行了比較,使讀者對程序設(shè)計語言模型及其內(nèi)容的理解有了完整的參照對象。全書各章節(jié)選用大量程序設(shè)計語言經(jīng)典實例來講解基本概念和程序設(shè)計方法,同時配有大量習(xí)題供讀者練習(xí)。本書共12章,主要內(nèi)容包括程序設(shè)計語言緒論、對象與類型、運算符與表達式、程序控制結(jié)構(gòu)、函數(shù)、列表與元組、字典與集合、文件與目錄、模塊、錯誤與異常、面向?qū)ο缶幊獭D形用戶界面編程。本書語言表達嚴(yán)謹(jǐn),文字流暢,內(nèi)容通俗易懂、重點突出、實例豐富,適合作為高等院校各專業(yè)程序設(shè)計語言課程的教材,還可作為全國計算機二級考試的參考用書。
目前,在教育部高等學(xué)校計算機基礎(chǔ)課程教學(xué)指導(dǎo)委員會的指導(dǎo)下,計算機基礎(chǔ)課程教學(xué)改革工作在不斷推進深入。程序設(shè)計語言課程是大學(xué)生必須掌握的計算機基礎(chǔ)課程,大學(xué)生們通過這門課程的學(xué)習(xí),應(yīng)該掌握程序設(shè)計的基本方法,具備用程序解決問題的能力。如何選擇某種程序設(shè)計語言作為高等學(xué)校大學(xué)生程序設(shè)計課程的語言環(huán)境,是各校計算機基礎(chǔ)教育工作者研究的課題之一。Python語言作為一門開源語言,已被許多學(xué)校引入教學(xué)過程。它是面向?qū)ο蠛瓦^程的程序設(shè)計語言,具有無界整數(shù)數(shù)據(jù)類型及豐富的數(shù)據(jù)結(jié)構(gòu)、可移植性強、語言簡潔、程序可讀性強等特點。根據(jù)實際教學(xué)經(jīng)驗,在程序設(shè)計課程教學(xué)改革研究時,我們選用Python語言作為程序設(shè)計課程的語言環(huán)境。對本書內(nèi)容的選擇,我們力求面向讀者,以程序設(shè)計零基礎(chǔ)為起點,全面介紹了包括面向過程和面向?qū)ο蟮腜ython程序設(shè)計方法。讓讀者首先接受面向?qū)ο蟮某绦蛟O(shè)計的思想方法,并理解面向?qū)ο蟮某绦蛟O(shè)計是需要以面向過程的程序設(shè)計方法作為基礎(chǔ)的。
全書共分為12章,第1章介紹程序設(shè)計語言入門與Python語言開發(fā)環(huán)境;第2章介紹對象與類型;第3章介紹運算符與表達式;第4章介紹程序控制結(jié)構(gòu);第5章介紹函數(shù);第6章介紹列表與元組;第7章介紹字典與集合;第8章介紹文件與目錄;第9章介紹模塊;第10章介紹錯誤與異常;第11章介紹面向?qū)ο缶幊;?2章介紹圖形用戶界面編程。
本書編者長期從事程序設(shè)計課程的教學(xué)工作,并利用各種語言開發(fā)工具開發(fā)了許多軟件項目,具有豐富的教學(xué)經(jīng)驗和較強的科學(xué)研究能力。編者本著加強基礎(chǔ)、注重實踐、強調(diào)思想方法的教學(xué)、突出應(yīng)用能力和創(chuàng)新能力培養(yǎng)的原則,力求使本書有較強的可讀性、適用性和先進性。我們的教學(xué)理念是:教學(xué)是教思想、教方法,真正做到授人以魚,不如授人以漁。為了加強讀者對程序設(shè)計思想方法的理解,本書將程序設(shè)計語言模型與人類自然語言模型相比較,讓讀者對程序設(shè)計語言模型及其內(nèi)容的理解有了完整的參照對象。為了提高讀者的編程技巧,書中選用了大量的經(jīng)典例題,這些例題與相應(yīng)章節(jié)的內(nèi)容是完全吻合的,例題還備有多種可能的解答,以期拓展讀者的解題思路。為了便于讀者自學(xué),全書在內(nèi)容組織、編排上注重由淺入深、循序漸進。因此,本書適合作為高等院校各專業(yè)程序設(shè)計課程的教材,也可作為廣大計算機愛好者的自學(xué)參考用書。教師選用本書作為大學(xué)生程序設(shè)計課程的教材時,可根據(jù)實際教學(xué)課時數(shù)調(diào)整或取舍內(nèi)容。
本書所給出的程序示例均在Python 3.3環(huán)境下進行了調(diào)試和運行。為了幫助讀者更好地學(xué)習(xí)Python,編者在每章后還編寫了大量的習(xí)題供讀者練習(xí)。
本書由楊長興主編,并負(fù)責(zé)全書的總體策劃、統(tǒng)稿和定稿工作。肖峰教授協(xié)助主編完成統(tǒng)稿、定稿工作。各章參加編寫人員:中南大學(xué)楊長興(第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)國、朱從旭(第11章);肖峰、中南大學(xué)周肆清、羅芳、奎曉燕(第12章)。
本書的編寫得到了清華大學(xué)譚浩強教授、吳文虎教授的指導(dǎo)與幫助,在此一并表示衷心感謝。在本書的編寫過程中,中南大學(xué)邵自然、呂格莉、裘嶸、楊莉軍、曹丹等老師參與了大綱的討論,本書吸收了他們許多寶貴的意見和建議,在此一并表示衷心感謝。編者在編寫本書的過程中參考了大量的文獻資料,在此也向這些文獻資料的作者表示衷心感謝。
由于編者水平所限,書中疏漏及不妥之處在所難免,敬請讀者不吝賜教。
編 者
2016年6月
楊長興,男,1962年3月出生,湖南安鄉(xiāng)人。中南大學(xué)信息科學(xué)與工程學(xué)院教授、計算中心主任。教育部2006-2010年、2013-2017年大學(xué)計算機課程教學(xué)指導(dǎo)委員會委員;全國高校計算機基礎(chǔ)教育研究會醫(yī)學(xué)專業(yè)委員會副主任委員;湖南省高教學(xué)會計算機教育專業(yè)委員會常務(wù)理事。主要研究方向為網(wǎng)格技術(shù)、醫(yī)學(xué)信息表達與處理。近年在國家自然科學(xué)核心期刊發(fā)表學(xué)術(shù)論文30余篇;主編出版著作10余部;主持或參與國家自然科學(xué)基金和省級自然科學(xué)基金項目多項;多次參加國際國內(nèi)醫(yī)藥信息科學(xué)學(xué)術(shù)活動。長期從事計算機專業(yè)和基礎(chǔ)課程教學(xué),在教學(xué)理念、教學(xué)內(nèi)容與方法上有比較豐富的經(jīng)驗。
第1章 程序設(shè)計語言緒論 1
1.1 計算機程序設(shè)計語言概述 1
1.2 程序的編譯與解釋 3
1.3
Python語言 4
1.3.1
Python語言及其特點 4
1.3.2
第一個Python語言程序示例 5
1.3.3
Python語言程序的書寫規(guī)范 6
1.4 配置Python語言的開發(fā)環(huán)境 6
1.5 編寫程序的基本步驟 8
1.6 算法與流程圖 9
1.6.1
算法 9
1.6.2
流程圖 10
小結(jié) 11
習(xí)題 11
第2章 對象與類型 12
2.1 對象的基本概念 12
2.2 變量與對象的關(guān)系 13
2.2.1
變量引用對象 13
2.2.2
多個變量共享引用同一對象 14
2.2.3
對象的刪除 14
2.3 對象類型 15
2.4 數(shù)字 15
2.4.1
整數(shù)類型 15
2.4.2
浮點數(shù) 16
2.4.3
復(fù)數(shù) 16
2.5 字符串 16
2.5.1
字符串的基本使用方法 16
2.5.2
索引、切片操作 17
2.5.3
單個字符的字符串問題 18
2.5.4
字符串的函數(shù)與方法 19
2.6 字節(jié)串和字節(jié)數(shù)組 20
小結(jié) 21
習(xí)題 21
第3章 運算符與表達式 22
3.1 數(shù)字對象的運算 22
3.1.1
算術(shù)運算 22
3.1.2
關(guān)系運算 23
3.1.3
邏輯運算 24
3.1.4
移位和按位邏輯運算 25
3.1.5
條件表達式 26
3.1.6
標(biāo)準(zhǔn)類型操作符 26
3.2 運算符的優(yōu)先級與結(jié)合性
26
3.3 常用函數(shù) 27
3.3.1
常用內(nèi)置函數(shù) 27
3.3.2
數(shù)學(xué)函數(shù)庫的函數(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
賦值語句 39
4.1.2
基本輸入/輸出 40
4.2 分支結(jié)構(gòu) 41
4.2.1
if語句(單分支) 42
4.2.2
if...else語句(雙分支) 42
4.2.3
if...elif語句(多分支) 43
4.2.4
if語句和if... else語句的嵌套形式 44
4.3 循環(huán)語句 45
4.3.1
while語句 45
4.3.2
for 語句 47
4.3.3
多重循環(huán) 49
4.4
pass、break、continue、else語句 50
4.4.1
pass 語句 50
4.4.2
break 語句 50
4.4.3
continue語句 51
4.4.4
else語句 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對象的淺復(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
文件讀/寫實例 116
8.3 文件目錄 119
小結(jié) 120
習(xí)題 120
第9章 模塊 121
9.1 名稱空間 121
9.2 導(dǎo)入模塊 122
小結(jié) 123
習(xí)題 123
第10章 錯誤與異常 124
10.1
異常 124
10.1.1
異常的概念 124
10.1.2
Python中的異常 125
10.2
異常的檢測與處理 126
10.2.1
try ... except語句 127
10.2.2
try ... except ... else語句 127
10.2.3
帶有多個except子句的try語句 128
10.2.4
finally子句 129
10.2.5
捕獲所有異常 129
10.3
斷言語句與上下文管理語句 129
10.3.1
斷言語句(assert語句) 129
10.3.2 上下文管理語句(with語句) 130
10.4
raise語句 130
小結(jié) 132
習(xí)題 132
第11章 面向?qū)ο缶幊?133
11.1
面向?qū)ο蟪绦蛟O(shè)計的基本概念 133
11.2
類與實例 136
11.2.1
類的定義與屬性 136
11.2.2
實例的聲明 137
11.2.3
構(gòu)造器方法與解構(gòu)器方法 138
11.2.4
實例屬性 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
類、實例可用的內(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
滾動條與進度條 183
12.10.1
滾動條 184
12.10.2
進度條 184
12.11
畫布 186
12.11.1
畫布組件的基本用法 186
12.11.2
畫布組件中的對象創(chuàng)建 188
12.11.3
畫布應(yīng)用的簡單示例 191
小結(jié) 192
習(xí)題 193
參考文獻 194