《Python程序设计从基础到应用》系统介绍了Python语言的语法基础知识,包括Python基本数据类型、程序控制结构、组合数据类型、函数与模块、类和对象、文件,以及Python常用标准库;并围绕Python网络爬虫、Python数据分析、Python票据识别的具体实例,详细介绍了Python第三方库的相关应用,阐述其应用程序的开发方法和过程,实现知识到能力的进阶。
《Python程序设计从基础到应用》第1~9章为Python学习的基础内容部分,夯实基础,万丈高楼方能有望。第10~12章为Python学习的应用和提高部分,遴选有趣且实用的案例,通过翔实的讲解和丰富的代码案例带领读者充分领略Python的强大之处。
《Python程序设计从基础到应用》既可作为高等学校程序设计类课程的教材,也适用于初学Python语言的读者,还可作为全国计算机等级考试二级Python语言程序设计的参考书。
《Python程序设计从基础到应用》内容丰富、循序渐进,是江苏省一流本科课程Python程序设计从基础到应用(中国大学MOOC)的配套用书。
《Python程序设计从基础到应用》配有电子课件、混合式教学方案,适合开展线上线下混合式教学,每章配有习题,以指导读者深入地进行学习。
Python自诞生始,高效的编程语言简洁的编程语言干净优雅简单易用的编程语言等一众词汇便伴随在其左右;更甚之,Python语言在2021年度TIOBE编程语言排行榜中位列第一。学生在学习的时候能清晰地体会和感受Python语言的特质吗?能将Python语言的优势充分掌握并为己所用吗?
编者深耕高校计算机学科教育多年,对于学生理论应试能力充沛而动手实战能力欠缺等弊端深有感悟。然而,课程设置往往只有小半部分课时用于实践教学,但内容单一,形式呆板,所见成效不高。课程结束,相关理论知识往往被学生束之高阁,鲜再接触。能否将基础的实践内容和商业应用的实际案例融合,更好、更生动地引导学生实践,这个念头一直萦绕于编者心头。
为此,编者将Python程序设计的知识内容,按照从基础到应用的过程循序渐进地进行了编排,实现网络爬虫、数据处理、图像识别等进阶应用,希望能带领学生在理论和实践领域更好、更直观地领略Python的魅力与精彩。
古语有云师者,传道授业解惑也,编者认为,其中三者皆重要,理论实践教学为授业,课后答疑为解惑,其中最为重要的应该为传道。通过传道能够让学生潜心并喜爱上这门课程、这项技术,能够在授业范围之外,自由地、自主地开辟自己学习的内容,这才应该是高校教育的根本之道。希冀本书能成为师者传道授业解惑的工具,更能成为学生成长的阶梯,从而真心喜爱上计算机学科,一路披荆斩棘,勇攀高峰。
《Python程序设计从基础到应用》内容丰富、循序渐进,是江苏省一流本科课程Python程序设计从基础到应用(中国大学MOOC)的配套用书。建议读者借助在线开放课程平台,深入学习本书内容。本书配有混合式教学方案,适合开展线上线下混合式教学。每章配有习题,以指导读者深入地进行学习。
《Python程序设计从基础到应用》由袁红娟任主编,李生、李金海任副主编,参加本书编写工作的还有彭海静、仲崇高、孙剑、郦丽、花丽、蒋辉芹等老师。感谢王会涛、苟俊同学对本书所有案例进行了调试。
由于时间仓促,书中难免存在不妥之处,请读者见谅,并提出宝贵意见。
编 者
目 录
前言
第1章 Python语言概述1
1.1 程序设计语言1
1.1.1 程序设计语言发展1
1.1.2 编译与解释2
1.2 Python语言简介2
1.2.1 Python的历史2
1.2.2 Python的应用3
1.3 程序设计基本方法3
1.3.1 程序设计的IPO模式4
1.3.2 程序编写的步骤4
1.3.3 结构程序设计的基本方法6
1.4 Python语法6
1.4.1 Python语法元素6
1.4.2 Python程序书写规范7
1.4.3 Python语言的特点8
1.5 Python输入/输出8
1.5.1 输入函数:input()8
1.5.2 eval()函数9
1.5.3 输出函数:print()9
1.5.4 字符串的format()方法10
1.5.5 format()方法的格式控制11
1.6 Python的安装和运行12
1.6.1 Python开发环境的安装12
1.6.2 Python程序的运行13
1.7 习题15
第2章 基本数据类型17
2.1 变量17
2.1.1 变量定义17
2.1.2 删除变量19
2.1.3 变量命名规则20
2.2 基本数据类型20
2.2.1 数字21
2.2.2 字符串23
2.3 运算符和表达式26
2.3.1 算术运算符26
2.3.2 常用数学函数27
2.3.3 赋值运算符30
2.3.4 关系运算符31
2.3.5 逻辑运算符32
2.3.6 位运算符33
2.3.7 表达式34
2.4 习题36
第3章 程序控制结构38
3.1 算法与流程图38
3.1.1 算法38
3.1.2 用流程图描述算法39
3.1.3 程序的三种基本结构39
3.1.4 顺序结构程序设计40
3.2 选择结构程序设计41
3.2.1 单分支结构41
3.2.2 双分支结构42
3.2.3 多分支结构43
3.2.4 选择结构的嵌套45
3.3 循环结构程序设计46
3.3.1 遍历循环46
3.3.2 条件循环48
3.3.3 break语句50
3.3.4 continue语句51
3.3.5 循环结构的嵌套51
3.4 异常处理52
3.4.1 try…except语句53
3.4.2 try…except…else语句54
3.4.3 try…except…finally语句55
3.5 应用实例56
3.5.1 书店销售策略56
3.5.2 九九乘法表56
3.5.3 计算圆周率的近似值57
3.5.4 求乒乓球比赛对手名单57
3.5.5 猜数字游戏58
3.6 习题59
第4章 组合数据类型61
4.1 列表61
4.1.1 列表的基本操作62
4.1.2 列表的常用函数66
4.1.3 列表常用的操作方法67
4.2 元组71
4.2.1 元组的基本操作71
4.2.2 元组的常用函数73
4.2.3 元组的方法73
4.2.4 元组与列表的区别74
4.3 字符串75
4.3.1 字符串的基本操作75
4.3.2 字符串的常用函数77
4.3.3 字符串的方法78
4.4 集合81
4.4.1 集合的基本操作81
4.4.2 集合运算82
4.4.3 集合的常用函数及方法83
4.5 字典84
4.5.1 字典的基本操作84
4.5.2 字典的常用函数及方法85
4.5.3 字典的遍历87
4.6 应用实例88
4.6.1 日期计算88
4.6.2 二分法查找89
4.6.3 约瑟夫环问题90
4.6.4 删除列表相关元素92
4.6.5 统计单词个数93
4.6.6 英文词频统计94
4.6.7 恺撒密码加密95
4.7 习题96
第5章 函数与模块98
5.1 函数概述98
5.2 函数的定义与调用99
5.2.1 函数的定义99
5.2.2 函数的调用99
5.2.3 函数调用处理过程100
5.2.4 无参函数与有参函数100
5.2.5 函数的返回值101
5.3 函数的参数传递102
5.3.1 形式参数与实际参数102
5.3.2 引用和对象102
5.3.3 参数传递103
5.4 不同类型的参数104
5.4.1 位置参数104
5.4.2 关键字参数105
5.4.3 可选参数106
5.4.4 可变长位置参数107
5.4.5 可变长关键字参数107
5.5 匿名函数108
5.6 递归函数109
5.6.1 递归函数的定义109
5.6.2 递归的求解110
5.7 变量的作用域110
5.7.1 简单数据类型变量作用域110
5.7.2 组合数据类型变量作用域111
5.8 模块112
5.8.1 模块的定义112
5.8.2 导入模块113
5.9 应用实例114
5.9.1 计算中奖概率114
5.9.2 统计素数个数116
5.9.3 斐波那契数列117
5.9.4 发红包游戏程序118
5.9.5 学生管理系统程序119
5.10 习题122
第6章 类和对象123
6.1 面向对象的概念123
6.1.1 类和对象的概念123
6.1.2 面向对象程序设计基本特征123
6.2 类的定义和对象的创建124
6.2.1 利用内置的类创建对象124
6.2.2 定义自己的类125
6.2.3 利用自定义的类创建对象126
6.2.4 类属性与实例属性127
6.2.5 类的特殊方法128
6.3 类的继承和多态130
6.3.1 类的继承130
6.3.2 多态与方法重载131
6.4 应用实例:平面图形计算133
6.5 习题135
第7章 文件136
7.1 文件概述136
7.1.1 文件与文件路径136
7.1.2 Python中的文件操作136
7.2 打开文件137
7.2.1 open()函数137
7.2.2 文件对象常用的属性138
7.3 关闭文件139
7.3.1 close()函数139
7.3.2 with as 自动资源管理140
7.4 读取文件140
7.4.1 read()函数140
7.4.2 readline()和readlines()函数142
7.4.3 遍历文件143
7.5 文件写入143
7.5.1 write() 函数143
7.5.2 writelines()函数144
7.6 文件定位145
7.6.1 tell() 函数145
7.6.2 seek()函数146
7.7 CSV格式文件操作147
7.7.1 CSV 文件概述147
7.7.2 一维数据的读写148
7.7.3 二维数据的读写149
7.8 csv模块150
7.8.