本书以教育部高等学校大学计算机课程教学指导委员会的《大学计算机基础课程教学基本要求》为依据,是一本零起点的程序设计快速入门教材,立足教师易教,学生乐学,技能实用的宗旨,内容精炼,摈弃深奥的理论,按照认知规律,采用由浅入深、由外而内的教学模式,既强调基础性和系统性,又注重内容宽度和知识深度的结合,把计算思维的要素、方法融入问题和案例,让读者在学习程序设计的过程中潜移默化地培养计算思维,从而使程序设计类教材从单纯知识和技能的培养层面提高到意识和思维的培养层面。 本书共8章,内容包括问题求解中的计算思维、Python编程基础、问题求解中的数据抽象数据类型与基本运算、问题求解中的控制抽象程序控制结构与异常处理、函数与模块、常用算法设计策略及其Python 实现、文件与数据格式化、应用实例。每章后附有基本知识练习、能力拓展与训练和实验实训。 编者在中国大学MOOC 平台上开设有与本教材配套的基于计算思维的Python 程序设计课程。 本书可作为大中专院校教材及各类计算机技术培训教材,也可作为全国计算机等级考试二级Python 语言程序设计考试参考用书或Python 初学者自学用书。
把计算思维的要素、方法融入问题和案例,让读者在学习程序设计的过程中潜移默化地培养计算思维,从而使程序设计类教材从单纯知识和技能的培养层面提高到意识和思维的培养层面。
大学计算机Python程序设计当前,世界范围内新一轮科技革命和产业变革正加速进行。以新技术、新业态、新产业为特点的新经济蓬勃发展,迫切需要新型工科人才的支撑,以加快实现我国从工程教育大国走向工程教育强国。
在当今的AI时代,Python 从众多编程语言中脱颖而出,成为人工智能领域中机器学习、神经网络、深度学习等应用开发的主流编程语言。Python 简单易学,消除了普通人对于编程的恐惧,使得越来越多的非程序员开始通过编写简单的程序,让自己的生活、工作和学习更美好。
本书特色如下。
(1) 本书是一本零起点的程序设计快速入门教材,立足教师易教,学生乐学,技能实用的宗旨,内容精炼,摈弃深奥的理论,按照认知规律,采用由浅入深、由外而内的教学模式,既强调基础性和系统性,又注重内容宽度和知识深度的结合,采用通俗易懂的语言和丰富的案例,方便读者在短的时间入门Python程序设计,开启愉悦的Python编程之旅。
(2) 本书以教育部高等学校大学计算机课程教学指导委员会的《大学计算机基础课程教学基本要求》为依据,把计算思维的要素、方法融入问题和案例,让读者在学习程序设计的过程中潜移默化地培养计算思维,了解计算机学科独特的思维方式,使读者在各自的专业领域中能够有意识地借鉴、引入计算机科学中的理念、技术和方法,提高信息智能化时代利用计算机进行问题求解的能力,从而使程序设计类教材从单纯知识和技能的培养层面提高到意识和思维的培养层面。
(3) 依据新工科建设中工程专业对信息技术的需求,多方位、多角度培养学生工程能力。书中利用思考与探索能力拓展与训练等栏目多方位、多角度培养学生利用计算机解决问题的能力,实现工程素养与大学计算机课程的融合。
(4) 将课程思政潜移默化、润物细无声地融入到教学内容中。在书中例题和练习中,引领式隐性引入课程思政,引导学生树立正确的三观,培养学生的家国情怀,实现知识传授、能力培养与价值引领的有机融合。
本书共8章,内容包括问题求解中的计算思维、Python编程基础、问题求解中的数据抽象数据类型与基本运算、问题求解中的控制抽象程序控制结构与异常处理、函数与模块、常用算法设计策略及其Python实现、文件与数据格式化、应用实例。
本书由申艳光、薛红梅主编,参与编写的还有杨丽老师以及大学计算机课程组的所有教师,他们都为此书的出版付出了辛勤的劳动。
本书的出版得到国家自然科学基金资助项目(61802107)、河北省高等学校科学技术研究项目(ZD2016017)的资助。
由于编者的水平有限,书中难免存在不足之处,恳请读者批评和指正,以使其更臻完善!
本书提供电子课件和实验实训素材,可以登录清华大学出版社网站(www.tup.com.cn)下载。本书提供了配套的慕课,读者可以登录中国大学MOOC(https://www.icourse163.org/course/HEBEU1205998803)进行学习。
编者2021年3月
申艳光,河北工程大学信电学院教授,女,50岁,九三学社社员,硕士生导师,河北省机器学习学会常务理事,河北省计算机学会理事,校教学指导委员会委员。2019年获河北省高等学校教学名师荣誉称号。近10年主持和主研国家、省、市级教科研项目20多项,出版学术专著1部,主编教材7部,发表学术论文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算法的实现程序设计语言11
1.4程序设计中的数据和数据结构13
1.5算法思维问题求解的步骤15
1.6数学建模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环境32
2.2.1Python环境搭建32
2.2.2Python的开发环境34
2.2.3在PowerShell或命令提示符环境下运行Python程序39
2.3查看Python帮助文档的方法40
2.4Python编程基础44
2.4.1标识符和关键字44
2.4.2程序的书写规则45
2.4.3基本的输入和输出48
基础知识练习53
本章实验实训54
第3章问题求解中的数据抽象数据类型与基本运算57
3.1问题求解中的数据抽象57
3.1.1数据和数据类型57
3.1.2常量、对象、变量和动态类型化59
3.2常用数据类型: 数字、布尔型和字符串61
3.2.1数字类型61
3.2.2数字类型的运算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循环结构117
4.3.1for循环117
4.3.2while循环123
4.3.3循环嵌套126
4.3.4循环中的特殊语句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章函数与模块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自定义函数185
5.4.1函数的定义185
5.4.2函数的调用189
5.4.3函数的参数传递190
5.4.4变量的作用域195
基础知识练习198
能力拓展与训练201
本章实验实训(一)201
本章实验实训(二)210
第6章常用算法设计策略及其Python实现215
6.1常用算法设计策略的Python实现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动态规划法234
6.1.8查找238
6.1.9排序241
6.2算法分析245
基础知识练习247
能力拓展与训练248
本章实验实训248
第7章文件与数据格式化258
7.1文件258
7.1.1文件的概念与类型258
7.1.2文件的打开和关闭259
7.1.3文件的读写260
7.2数据格式化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库创建数组287
8.2.3数组对象的常用操作292
8.2.4NumPy库中的文件操作296
8.2.5NumPy在线性代数中的应用298
8.2.6NumPy在多项式中的应用300
基础知识练习303
能力拓展与训练304
本章实验实训304
参考文献307