本書以零基礎(chǔ)為起點介紹Python程序設計方法。各章內(nèi)容由淺入深、相互銜接、前后呼應、循序漸進。為了提高讀者對程序設計思想方法的理解,本書將程序設計語言模型與人類自然語言模型進行了比較,使讀者對程序設計語言模型及其內(nèi)容的理解有了完整的參照對象。全書各章節(jié)選用大量程序設計語言經(jīng)典實例來講解基本概念和程序設計方法,同時配有大量習題供讀者練習。本書共12章,主要內(nèi)容包括程序設計語言緒論、對象與類型、運算符與表達式、程序控制結(jié)構(gòu)、函數(shù)、列表與元組、字典與集合、文件與目錄、模塊、錯誤與異常、面向?qū)ο缶幊�、圖形用戶界面編程。本書語言表達嚴謹,文字流暢,內(nèi)容通俗易懂、重點突出、實例豐富,適合作為高等院校各專業(yè)程序設計語言課程的教材,還可作為全國計算機二級考試的參考用書。
目前,在教育部高等學校計算機基礎(chǔ)課程教學指導委員會的指導下,計算機基礎(chǔ)課程教學改革工作在不斷推進深入。程序設計語言課程是大學生必須掌握的計算機基礎(chǔ)課程,大學生們通過這門課程的學習,應該掌握程序設計的基本方法,具備用程序解決問題的能力。如何選擇某種程序設計語言作為高等學校大學生程序設計課程的語言環(huán)境,是各校計算機基礎(chǔ)教育工作者研究的課題之一。Python語言作為一門開源語言,已被許多學校引入教學過程。它是面向?qū)ο蠛瓦^程的程序設計語言,具有無界整數(shù)數(shù)據(jù)類型及豐富的數(shù)據(jù)結(jié)構(gòu)、可移植性強、語言簡潔、程序可讀性強等特點。根據(jù)實際教學經(jīng)驗,在程序設計課程教學改革研究時,我們選用Python語言作為程序設計課程的語言環(huán)境。對本書內(nèi)容的選擇,我們力求面向讀者,以程序設計零基礎(chǔ)為起點,全面介紹了包括面向過程和面向?qū)ο蟮腜ython程序設計方法。讓讀者首先接受面向?qū)ο蟮某绦蛟O計的思想方法,并理解面向?qū)ο蟮某绦蛟O計是需要以面向過程的程序設計方法作為基礎(chǔ)的。
全書共分為12章,第1章介紹程序設計語言入門與Python語言開發(fā)環(huán)境;第2章介紹對象與類型;第3章介紹運算符與表達式;第4章介紹程序控制結(jié)構(gòu);第5章介紹函數(shù);第6章介紹列表與元組;第7章介紹字典與集合;第8章介紹文件與目錄;第9章介紹模塊;第10章介紹錯誤與異常;第11章介紹面向?qū)ο缶幊�;�?2章介紹圖形用戶界面編程。
本書編者長期從事程序設計課程的教學工作,并利用各種語言開發(fā)工具開發(fā)了許多軟件項目,具有豐富的教學經(jīng)驗和較強的科學研究能力。編者本著加強基礎(chǔ)、注重實踐、強調(diào)思想方法的教學、突出應用能力和創(chuàng)新能力培養(yǎng)的原則,力求使本書有較強的可讀性、適用性和先進性。我們的教學理念是:教學是教思想、教方法,真正做到授人以魚,不如授人以漁。為了加強讀者對程序設計思想方法的理解,本書將程序設計語言模型與人類自然語言模型相比較,讓讀者對程序設計語言模型及其內(nèi)容的理解有了完整的參照對象。為了提高讀者的編程技巧,書中選用了大量的經(jīng)典例題,這些例題與相應章節(jié)的內(nèi)容是完全吻合的,例題還備有多種可能的解答,以期拓展讀者的解題思路。為了便于讀者自學,全書在內(nèi)容組織、編排上注重由淺入深、循序漸進。因此,本書適合作為高等院校各專業(yè)程序設計課程的教材,也可作為廣大計算機愛好者的自學參考用書。教師選用本書作為大學生程序設計課程的教材時,可根據(jù)實際教學課時數(shù)調(diào)整或取舍內(nèi)容。
本書所給出的程序示例均在Python 3.3環(huán)境下進行了調(diào)試和運行。為了幫助讀者更好地學習Python,編者在每章后還編寫了大量的習題供讀者練習。
本書由楊長興主編,并負責全書的總體策劃、統(tǒng)稿和定稿工作。肖峰教授協(xié)助主編完成統(tǒng)稿、定稿工作。各章參加編寫人員:中南大學楊長興(第1章);大連醫(yī)科大學肖峰、河北醫(yī)科大學李連捷(第2、3章);中山大學劉燕(第4章);北京大學郭永青(第5章);首都醫(yī)科大學夏翃(第6章);中南大學田琪、李利明、李小蘭(第7、8章);復旦大學韓絳青、武警后勤學院孫納新(第9、10章);中南大學周春艷、劉衛(wèi)國、朱從旭(第11章);肖峰、中南大學周肆清、羅芳、奎曉燕(第12章)。
本書的編寫得到了清華大學譚浩強教授、吳文虎教授的指導與幫助,在此一并表示衷心感謝。在本書的編寫過程中,中南大學邵自然、呂格莉、裘嶸、楊莉軍、曹丹等老師參與了大綱的討論,本書吸收了他們許多寶貴的意見和建議,在此一并表示衷心感謝。編者在編寫本書的過程中參考了大量的文獻資料,在此也向這些文獻資料的作者表示衷心感謝。
由于編者水平所限,書中疏漏及不妥之處在所難免,敬請讀者不吝賜教。
編 者
2016年6月
楊長興,男,1962年3月出生,湖南安鄉(xiāng)人。中南大學信息科學與工程學院教授、計算中心主任。教育部2006-2010年、2013-2017年大學計算機課程教學指導委員會委員;全國高校計算機基礎(chǔ)教育研究會醫(yī)學專業(yè)委員會副主任委員;湖南省高教學會計算機教育專業(yè)委員會常務理事。主要研究方向為網(wǎng)格技術(shù)、醫(yī)學信息表達與處理。近年在國家自然科學核心期刊發(fā)表學術(shù)論文30余篇;主編出版著作10余部;主持或參與國家自然科學基金和省級自然科學基金項目多項;多次參加國際國內(nèi)醫(yī)藥信息科學學術(shù)活動。長期從事計算機專業(yè)和基礎(chǔ)課程教學,在教學理念、教學內(nèi)容與方法上有比較豐富的經(jīng)驗。
第1章 程序設計語言緒論 1
1.1 計算機程序設計語言概述 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
習題 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
復數(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
習題 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
標準類型操作符 26
3.2 運算符的優(yōu)先級與結(jié)合性
26
3.3 常用函數(shù) 27
3.3.1
常用內(nèi)置函數(shù) 27
3.3.2
數(shù)學函數(shù)庫的函數(shù)應用 31
3.4 常用的字符串方法 33
3.5 有關(guān)字節(jié)串和字節(jié)數(shù)組的方法
36
小結(jié) 37
習題 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
習題 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
習題 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
列表的應用 87
6.3 元組 91
6.3.1
元組的定義與操作 92
6.3.2
元組的特殊性質(zhì)及作用 92
6.4
Python對象的淺復制與深復制 93
小結(jié) 95
習題 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 字典與集合的應用 110
小結(jié) 111
習題 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
習題 120
第9章 模塊 121
9.1 名稱空間 121
9.2 導入模塊 122
小結(jié) 123
習題 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
習題 132
第11章 面向?qū)ο缶幊?133
11.1
面向?qū)ο蟪绦蛟O計的基本概念 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
標準類型派生的子類 143
11.3.3
繼承 143
11.4
重載 146
11.5
類、實例可用的內(nèi)置函數(shù) 147
小結(jié) 150
習題 150
第12章 圖形用戶界面編程 152
12.1
常用GUI 模塊介紹 152
12.2
tkinter模塊 153
12.2.1
使用tkinter編程的基本步驟 153
12.2.2
tkinter組件 154
12.2.3
標準屬性 155
12.2.4
組件布局 158
12.2.5
主窗口的屬性 161
12.3
標簽組件 161
12.4
按鈕 163
12.5
輸入框 166
12.6
選擇按鈕與單選按鈕 171
12.6.1
選擇按鈕 172
12.6.2
單選按鈕 173
12.6.3
選擇按鈕與單選按鈕應用示例 174
12.7
框架與標簽框架 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
畫布應用的簡單示例 191
小結(jié) 192
習題 193
參考文獻 194