本書以教育部高等學校大學計算機課程教學指導委員會的《大學計算機基礎課程教學基本要求》為依據(jù),是一本零起點的程序設計快速入門教材,立足教師易教,學生樂學,技能實用的宗旨,內容精煉,擯棄深奧的理論,按照認知規(guī)律,采用由淺入深、由外而內的教學模式,既強調基礎性和系統(tǒng)性,又注重內容寬度和知識深度的結合,把計算思維的要素、方法融入問題和案例,讓讀者在學習程序設計的過程中潛移默化地培養(yǎng)計算思維,從而使程序設計類教材從單純知識和技能的培養(yǎng)層面提高到意識和思維的培養(yǎng)層面。 本書共8章,內容包括問題求解中的計算思維、Python編程基礎、問題求解中的數(shù)據(jù)抽象數(shù)據(jù)類型與基本運算、問題求解中的控制抽象程序控制結構與異常處理、函數(shù)與模塊、常用算法設計策略及其Python 實現(xiàn)、文件與數(shù)據(jù)格式化、應用實例。每章后附有基本知識練習、能力拓展與訓練和實驗實訓。 編者在中國大學MOOC 平臺上開設有與本教材配套的基于計算思維的Python 程序設計課程。 本書可作為大中專院校教材及各類計算機技術培訓教材,也可作為全國計算機等級考試二級Python 語言程序設計考試參考用書或Python 初學者自學用書。
把計算思維的要素、方法融入問題和案例,讓讀者在學習程序設計的過程中潛移默化地培養(yǎng)計算思維,從而使程序設計類教材從單純知識和技能的培養(yǎng)層面提高到意識和思維的培養(yǎng)層面。
大學計算機Python程序設計當前,世界范圍內新一輪科技革命和產業(yè)變革正加速進行。以新技術、新業(yè)態(tài)、新產業(yè)為特點的新經(jīng)濟蓬勃發(fā)展,迫切需要新型工科人才的支撐,以加快實現(xiàn)我國從工程教育大國走向工程教育強國。
在當今的AI時代,Python 從眾多編程語言中脫穎而出,成為人工智能領域中機器學習、神經(jīng)網(wǎng)絡、深度學習等應用開發(fā)的主流編程語言。Python 簡單易學,消除了普通人對于編程的恐懼,使得越來越多的非程序員開始通過編寫簡單的程序,讓自己的生活、工作和學習更美好。
本書特色如下。
(1) 本書是一本零起點的程序設計快速入門教材,立足教師易教,學生樂學,技能實用的宗旨,內容精煉,擯棄深奧的理論,按照認知規(guī)律,采用由淺入深、由外而內的教學模式,既強調基礎性和系統(tǒng)性,又注重內容寬度和知識深度的結合,采用通俗易懂的語言和豐富的案例,方便讀者在短的時間入門Python程序設計,開啟愉悅的Python編程之旅。
(2) 本書以教育部高等學校大學計算機課程教學指導委員會的《大學計算機基礎課程教學基本要求》為依據(jù),把計算思維的要素、方法融入問題和案例,讓讀者在學習程序設計的過程中潛移默化地培養(yǎng)計算思維,了解計算機學科獨特的思維方式,使讀者在各自的專業(yè)領域中能夠有意識地借鑒、引入計算機科學中的理念、技術和方法,提高信息智能化時代利用計算機進行問題求解的能力,從而使程序設計類教材從單純知識和技能的培養(yǎng)層面提高到意識和思維的培養(yǎng)層面。
(3) 依據(jù)新工科建設中工程專業(yè)對信息技術的需求,多方位、多角度培養(yǎng)學生工程能力。書中利用思考與探索能力拓展與訓練等欄目多方位、多角度培養(yǎng)學生利用計算機解決問題的能力,實現(xiàn)工程素養(yǎng)與大學計算機課程的融合。
(4) 將課程思政潛移默化、潤物細無聲地融入到教學內容中。在書中例題和練習中,引領式隱性引入課程思政,引導學生樹立正確的三觀,培養(yǎng)學生的家國情懷,實現(xiàn)知識傳授、能力培養(yǎng)與價值引領的有機融合。
本書共8章,內容包括問題求解中的計算思維、Python編程基礎、問題求解中的數(shù)據(jù)抽象數(shù)據(jù)類型與基本運算、問題求解中的控制抽象程序控制結構與異常處理、函數(shù)與模塊、常用算法設計策略及其Python實現(xiàn)、文件與數(shù)據(jù)格式化、應用實例。
本書由申艷光、薛紅梅主編,參與編寫的還有楊麗老師以及大學計算機課程組的所有教師,他們都為此書的出版付出了辛勤的勞動。
本書的出版得到國家自然科學基金資助項目(61802107)、河北省高等學?茖W技術研究項目(ZD2016017)的資助。
由于編者的水平有限,書中難免存在不足之處,懇請讀者批評和指正,以使其更臻完善!
本書提供電子課件和實驗實訓素材,可以登錄清華大學出版社網(wǎng)站(www.tup.com.cn)下載。本書提供了配套的慕課,讀者可以登錄中國大學MOOC(https://www.icourse163.org/course/HEBEU1205998803)進行學習。
編者2021年3月
申艷光,河北工程大學信電學院教授,女,50歲,九三學社社員,碩士生導師,河北省機器學習學會常務理事,河北省計算機學會理事,校教學指導委員會委員。2019年獲河北省高等學校教學名師榮譽稱號。近10年主持和主研國家、省、市級教科研項目20多項,出版學術專著1部,主編教材7部,發(fā)表學術論文30多篇。其中主持和主研國家自然科學基金項目兩項,主持國家精品視頻公開課程一門,獲省教學成果一等獎和三等獎各一項。
第1章問題求解中的計算思維1
1.1計算機科學與計算思維1
1.1.1認識計算思維1
1.1.2計算機科學與計算思維的關系3
1.2認識軟件、程序和程序設計4
1.3計算機問題求解的靈魂算法5
1.3.1什么是算法5
1.3.2算法的分類7
1.3.3算法的特征7
1.3.4算法的描述8
1.3.5算法的實現(xiàn)程序設計語言11
1.4程序設計中的數(shù)據(jù)和數(shù)據(jù)結構13
1.5算法思維問題求解的步驟15
1.6數(shù)學建模16
1.7軟件工程化思想和方法18
1.7.1軟件危機18
1.7.2軟件工程的概念19
1.7.3軟件生命周期20
1.7.4軟件工程方法24
基礎知識練習29
能力拓展與訓練30
第2章Python編程基礎31
2.1Python語言概述31
2.1.1Python語言的特點31
2.1.2Python語言的不同版本32
2.2Python環(huán)境32
2.2.1Python環(huán)境搭建32
2.2.2Python的開發(fā)環(huán)境34
2.2.3在PowerShell或命令提示符環(huán)境下運行Python程序39
2.3查看Python幫助文檔的方法40
2.4Python編程基礎44
2.4.1標識符和關鍵字44
2.4.2程序的書寫規(guī)則45
2.4.3基本的輸入和輸出48
基礎知識練習53
本章實驗實訓54
第3章問題求解中的數(shù)據(jù)抽象數(shù)據(jù)類型與基本運算57
3.1問題求解中的數(shù)據(jù)抽象57
3.1.1數(shù)據(jù)和數(shù)據(jù)類型57
3.1.2常量、對象、變量和動態(tài)類型化59
3.2常用數(shù)據(jù)類型: 數(shù)字、布爾型和字符串61
3.2.1數(shù)字類型61
3.2.2數(shù)字類型的運算62
3.2.3布爾類型66
3.2.4字符串類型67
3.2.5字符串類型的運算70
3.3列表76
3.3.1列表定義與特點76
3.3.2列表基本操作76
3.4元組83
3.4.1元組定義與特點83
3.4.2元組基本操作83
3.5字典86
3.5.1字典定義與特點86
3.5.2字典基本操作87
3.6集合91
3.6.1集合定義與特點91
3.6.2集合的基本操作92
3.7運算符和表達式95
3.7.1運算符95
3.7.2表達式99
基礎知識練習100
能力拓展與訓練102
本章實驗實訓102
第4章問題求解中的控制抽象程序控制結構與異常處理108
4.1順序結構108
4.2選擇結構110
4.3循環(huán)結構117
4.3.1for循環(huán)117
4.3.2while循環(huán)123
4.3.3循環(huán)嵌套126
4.3.4循環(huán)中的特殊語句pass、break和continue127
4.4異常處理131
4.4.1什么是異常131
4.4.2異常處理try…except語句132
4.4.3自定義異常類139
基礎知識練習142
能力拓展與訓練145
本章實驗實訓(一)145
本章實驗實訓(二)150
第5章函數(shù)與模塊157
5.1模塊的導入和使用158
5.2Python標準庫160
5.2.1random庫161
5.2.2time庫162
5.2.3datetime庫166
5.2.4tkinter庫166
5.2.5turtle庫171
5.2.6其他177
5.3Python第三方庫178
5.3.1Python第三方庫分類簡介178
5.3.2Python第三方庫的安裝182
5.3.3PyInstaller庫184
5.4自定義函數(shù)185
5.4.1函數(shù)的定義185
5.4.2函數(shù)的調用189
5.4.3函數(shù)的參數(shù)傳遞190
5.4.4變量的作用域195
基礎知識練習198
能力拓展與訓練201
本章實驗實訓(一)201
本章實驗實訓(二)210
第6章常用算法設計策略及其Python實現(xiàn)215
6.1常用算法設計策略的Python實現(xiàn)215
6.1.1枚舉法215
6.1.2回溯法218
6.1.3遞推法222
6.1.4遞歸法223
6.1.5分治法228
6.1.6貪心算法232
6.1.7動態(tài)規(guī)劃法234
6.1.8查找238
6.1.9排序241
6.2算法分析245
基礎知識練習247
能力拓展與訓練248
本章實驗實訓248
第7章文件與數(shù)據(jù)格式化258
7.1文件258
7.1.1文件的概念與類型258
7.1.2文件的打開和關閉259
7.1.3文件的讀寫260
7.2數(shù)據(jù)格式化264
基礎知識練習266
能力拓展與訓練267
本章實驗實訓268
第8章應用實例270
8.1文本分析基礎270
8.1.1jieba庫270
8.1.2wordcloud庫273
8.1.3英文文本分析以Alice in Wonderland為例277
8.1.4中文文本分析以《紅樓夢》為例280
8.2科學計算基礎285
8.2.1NumPy庫中的ndarray285
8.2.2使用NumPy庫創(chuàng)建數(shù)組287
8.2.3數(shù)組對象的常用操作292
8.2.4NumPy庫中的文件操作296
8.2.5NumPy在線性代數(shù)中的應用298
8.2.6NumPy在多項式中的應用300
基礎知識練習303
能力拓展與訓練304
本章實驗實訓304
參考文獻307