新書推薦:
《
非对称创新:中国企业赶超战略 魏江 刘洋
》
售價:NT$
495.0
《
潜能觉醒
》
售價:NT$
395.0
《
初平:汉末群雄混战(190—195)
》
售價:NT$
245.0
《
建安:官渡大决战(196—200)
》
售價:NT$
245.0
《
中亚民族史
》
售價:NT$
840.0
《
人工智能与智能制造:概念与方法 [美]马苏德·索鲁什 [美]理查德·D.布拉茨
》
售價:NT$
640.0
《
中平:东汉王朝大崩溃(184—189)
》
售價:NT$
245.0
《
基于鲲鹏的分布式图分析算法实战
》
售價:NT$
495.0
|
編輯推薦: |
系统性强详解Python程序设计基础,涵盖Python面型对象编程、GUI编程、网络和多线程编程。
实用性强面向Python实际应用,覆盖Web开发、网络爬虫开发、数据分析与数据可视化应用方向。
配套资源丰富免费提供教学PPT、教学大纲、源代码、教学视频、配套软件。
|
內容簡介: |
《Python程序设计编程基础、Web开发及数据分析》系统讲述了Python程序设计的基础知识。全书共15章,内容包括:Python概述、Python基本语法、Python的基本流程控制、Python的四种典型序列结构、Python函数、Python文件和数据库操作、面向对象程序设计、模块和包、字符串操作与正则表达式的使用、错误及异常处理、GUI编程、网络和多线程编程、基于Flask框架的Web编程、网络爬虫应用开发、数据分析与可视化基础。
为提升学习效果,书中结合实际应用提供了大量的案例对概念和知识点进行说明,并配以完善的学习资料,包括教学PPT、教学大纲、源代码、教学视频及配套软件等,为读者带来全方位的学习体验。
《Python程序设计编程基础、Web开发及数据分析》系既可作为高等院校数据科学与大数据技术及其他计算机相关专业的Python教材,也可供自学者使用。
|
關於作者: |
李辉,博士,中国大数据技术与应用联盟智库专家、农村农业部全国苹果大数据发展应用协作组专家咨询委员会委员、北京市大数据教学实践基地负责人,主讲数据库原理及应用基础Python语言程序设计网站设计与开发等本科生课程,主编教材4部,主持教育部新工科项目2项,发表学术论文20余篇,申请软件著作权50余项,专利3项,曾获得中国大数据学术创新奖、全国高校人工智能与大数据教学创新奖、中国农业大学教学成果一等奖等奖项。
|
目錄:
|
目录
前言
第1章 Python概述1
1.1 认识Python语言1
1.1.1 Python的发展历程1
1.1.2 Python的特点1
1.1.3 Python的应用领域3
1.1.4 Python的版本4
1.2 Windows下的Python集成开发环境6
1.2.1 Python的编程模式6
1.2.2 Python开发运行环境的安装6
1.2.3 使用IDLE编写Hello Python9
1.2.4 PyCharm的安装与使用9
1.3 安装Python集成开发环境19
1.3.1 Linux环境下安装Python开发环境19
1.3.2 Mac OS下安装Python开发环境20
1.4 Python程序运行原理21
1.4.1 计算机程序设计语言的分类21
1.4.2 计算机程序的运行方式21
1.4.3 Python程序的运行方式22
1.4.4 Python的解释器类型23
1.4.5 Python程序的可执行文件23
1.4.6 Python语言的文件类型24
1.5 本章小结24
1.6 思考与练习24
第2章 Python基本语法25
2.1 Python程序设计的基本元素25
2.2 Python的语法特点26
2.2.1 命名规范26
2.2.2 代码缩进27
2.2.3 编码规范27
2.2.4 注释规则29
2.3 标识符与变量、常量30
2.3.1 标识符与保留字30
2.3.2 变量的定义与赋值32
2.3.3 常量的定义35
2.4 基本数据类型36
2.4.1 数值类型36
2.4.2 布尔类型38
2.4.3 NoneType类型38
2.4.4 数据类型转换38
2.4.5 对象和引用40
2.4.6 字符串类型41
2.5 基本输入和输出43
2.5.1 基于input函数输入43
2.5.2 基于print函数输出44
2.6 常见的运算符与表达式47
2.6.1 运算符与表达式概述47
2.6.2 算术运算符与表达式49
2.6.3 赋值运算符与表达式50
2.6.4 关系运算符与表达式51
2.6.5 逻辑运算符与表达式53
2.6.6 条件(三目)运算符54
2.6.7 位运算符54
2.6.8 运算符的优先级55
2.7 本章小结56
2.8 思考与练习56
第3章 Python的基本流程控制57
3.1 基本语句及顺序结构57
3.1.1 基本语句57
3.1.2 顺序结构58
3.2 选择结构59
3.2.1 if语句59
3.2.2 ifelse语句60
3.2.3 ifelifelse语句61
3.2.4 分支语句嵌套63
3.3 循环结构65
3.3.1 while语句65
3.3.2 for语句和range内建函数67
3.3.3 循环语句嵌套69
3.4 转移和中断语句70
3.4.1 break语句71
3.4.2 continue语句72
3.4.3 pass语句74
3.5 while...else与for...else语句75
3.5.1 while...else语句75
3.5.2 for...else语句76
3.6 本章小结76
3.7 思考与练习76
第4章 Python的四种典型序列结构78
4.1 序列78
4.1.1 序列概述78
4.1.2 序列的基本操作78
4.2 列表82
4.2.1 列表的创建与删除82
4.2.2 列表元素的访问与遍历83
4.2.3 列表元素的常用操作(增、删、改、查)85
4.2.4 列表元素的统计与排序92
4.2.5 列表的嵌套93
4.3 元组94
4.3.1 元组的创建与删除94
4.3.2 元组的常见操作95
4.3.3 元组与列表的区别及相互转换97
4.4 字典97
4.4.1 字典的创建98
4.4.2 字典元素的访问与遍历100
4.4.3 字典元素的常见操作(增、删、改、查)101
4.5 集合103
4.5.1 集合的创建104
4.5.2 集合元素的常见操作(增加、删除、查找)105
4.5.3 集合的交集、并集和差集数学运算106
4.6 容器的公共操作107
4.6.1 运算符操作107
4.6.2 公共方法108
4.6.3 容器类型转换110
4.7 推导式与生成器推导式111
4.7.1 列表推导式111
4.7.2 字典推导式113
4.7.3 集合推导式114
4.7.4 元组的生成器推导式114
4.8 本章小结115
4.9 思考与练习115
第5章 Python函数117
5.1 函数的定义和调用117
5.1.1 定义函数117
5.1.2 调用函数119
5.1.3 函数的返回值119
5.1.4 函数的嵌套调用120
5.2 函数的参数与值传递120
5.2.1 函数的形参和实参121
5.2.2 位置参数122
5.2.3 关键字参数123
5.2.4 默认参数124
5.2.5 不定长(可变)参数124
5.2.6 可变参数的装包与拆包126
5.3 变量的作用域127
5.3.1 LEGB原则127
5.3.2 全局变量和局部变量128
5.4 递归函数和匿名函数130
5.4.1 递归函数130
5.4.2 匿名函数131
5.5 高阶函数132
5.5.1 内置高阶函数:map133
5.5.2 内置高阶函数:reduce134
5.5.3 内置高阶函数:filter135
5.6 闭包及其应用136
5.6.1 闭包概述136
5.6.2 闭包的应用137
5.7 装饰器及其应用138
5.7.1 装饰器的概念138
5.7.2 装饰器的应用139
5.8 迭代器及其应用142
5.8.1 迭代器的概念142
5.8.2 迭代器的应用144
5.9 生成器及其应用145
5.9.1 生成器的概念145
5.9.2 生成器的应用145
5.10 本章小结147
5.11 思考与练习147
第6章 Python文件和数据库操作149
6.1 文件相关的基本概念149
6.1.1 文件与路径149
6.1.2 文件的编码方式150
6.1.3 文本文件和二进制文件的区别151
6.2 文件夹与目录操作152
6.2.1 os.path模块152
6.2.2 获取与改变工作目录152
6.2.3 目录与文件操作153
6.2.4 文件的重命名和删除154
6.3 文件的基本操作155
6.3.1 文件的打开和关闭155
6.3.2 文件的读取与写入157
6.3.3 按行对文件内容读写159
6.3.4 使用fileinput对象读取大文件操作160
6.4 处理XML格式文件的数据162
6.4.1 初识XML162
6.4.2 基于DOM操作XML文件165
6.4.3 基于SAX操作XML文件167
6.5 JSON格式文件及其操作169
6.5.1 JSON概述169
6.5.2 读写JSON文件169
6.5.3 数据格式转化对应表171
6.5.4 利用xmltodict库实现XML与JSON格式转换173
6.6 Python操作MySQL数据库175
6.6.1 PyMySQL的安装175
6.6.2 PyMySQL操作MySQL的流程及常用对象175
6.6.3 PyMySQL的使用步骤177
6.7 本章小结178
6.8 思考与练习179
第7章 面向对象程序设计180
7.1 面向对象程序设计的三个基本特性180
7.2 类和对象181
7.2.1 类的定义和使用182
7.2.2 构造函数(方法)与析构函数(方法)184
7.2.3 创建类的方法与成员访问186
7.2.4 访问限制:私有成员与公有成员190
7.2.5 类代码块192
7.2.6 特殊方法:静态方法和类方法192
7.2.7 单例模式196
7.2.8 函数和方法的区别196
7.3 类的继承和多态197
7.3.1 类的继承198
7.3.2 类的多继承201
7.3.3 方法重写202
7.3.4 多态与多态性205
7.3.5 接口207
7.3.6 运算符重载208
7.4 综合应用案例:会员管理系统设计与实现209
7.4.1 系统需求与设计209
7.4.2 系统框架实现209
7.4.3 管理系统功能实现211
7.4.4 主程序模块定义与实现214
7.5 本章小结214
7.6 思考与练习214
第8章 模块和包215
8.1 Python程序的模块结构215
8.2 模块的定义与使用216
8.2.1 模块的定义217
8.2.2 使用import语句导入模块217
8.2.3 使用fromimport语句导入模块218
8.2.4 模块搜索目录219
8.2.5 模块内建函数220
8.2.6 绝对导入和相对导入221
8.3 Python中的包221
8.3.1 Python程序的包结构221
8.3.2 创建和使用包222
8.4 引用其他模块223
8.4.1 第三方模块的下载与安装223
8.4.2 标准模块的使用225
8.4.3 常见的标准模块227
8.5 日期与时间函数227
8.5.1 时间函数228
8.5.2 日期函数231
8.5.3 日历函数232
8.6 本章小结233
8.7 思考与练习234
第9章 字符串操作与正则表达式的使用235
9.1 字符串的编码转换235
9.1.1 字符串的编码235
9.1.2 字符串的解码236
9.2 字符串的常见操作237
9.2.1 字符串查找237
9.2.2 字符串修改240
9.2.3 字符串判断245
9.2.4 字符串的长度计算248
9.2.5 字符串的格式化249
9.3 正则表达式及常见的基本符号251
9.4 re模块实现正则表达式操作253
9.4.1 匹配字符串:match方法254
9.4.2 搜索与替换字符串:sub方法与subn方法255
9.4.3 分割字符串:split方法256
9.4.4 搜索字符串:search、findall和finditer257
9.4.5 编译标志259
9.5 综合应用:利用正则表达式实现自动图片下载260
9.6 本章小结261
9.7 思考与练习261
第10章 错误及异常处理263
10.1 错误与异常263
10.1.1 两种类型的错误263
10.1.2 什么是异常263
10.1.3 常见的错误与异常265
10.2 捕获和处理异常266
10.2.1 tryexcept语句266
10.2.2 tryexceptelse语句267
10.2.3 带有多个except的try语句267
10.2.4 捕获所有异常268
10.2.5 finally子句268
10.3 处理异常的特殊方法269
10.3.1 raise语句抛出异常269
10.3.2 assert语句判定用户定义的约束条件270
10.3.3 withas语句271
10.3.4 自定义异常271
10.4 使用PyCharm进行断点调试272
10.5 本章小结274
10.6 思考与练习274
第11章 GUI编程275
11.1 GUI概述与窗口布局275
11.1.1 什么是GUI275
11.1.2 Windows窗口创建步骤276
11.1.3 布局管理器276
11.2 基于wxPython框架的GUI开发277
11.2.1 wxPython框架安装与配置277
11.2.2 利用wx.App子类创建窗体278
11.2.3 直接利用wx.App创建窗体278
11.2.4 使用wxPython框架创建窗体279
11.2.5 wxPython框架中常用的控件280
11.2.6 wxPython实例:会员管理系统用户登录主界面287
11.3 本章小结289
11.4 思考与练习289
第12章 网络和多线程编程290
12.1 网络编程基础290
12.1.1 IP地址290
12.1.2 端口与端口号290
12.1.3 TCP291
12.1.4 Socket(套接字)292
12.2 TCP编程292
12.2.1 TCP通信流程293
12.2.2 创建TCP客户端程序294
12.2.3 创建TCP服务器端程序295
12.3 多线程编程297
12.3.1 进程与多进程的使用297
12.3.2 线程与多线程的使用302
12.3.3 互斥锁与死锁305
12.3.4 进程与线程的比较308
12.4 本章小结309
12.5 思考与练习309
第13章 基于Flask框架的Web编程310
13.1 Web框架概述310
13.1.1 什么是Web框架310
13.1.2 Python常用的Web框架310
13.2 Flask框架环境搭建312
13.2.1 安装虚拟环境312
13.2.2 安装Flask314
13.3 Flask框架的使用315
13.3.1 第一个Flask程序316
13.3.2 路由317
13.3.3 静态文件319
13.3.4 Jinja2模板的使用319
13.4 本章小结324
13.5 思考与练习324
第14章 网络爬虫应用开发325
14.1 初识网络爬虫325
14.1.1 网络爬虫概述325
14.1.2 网络爬虫的分类325
14.1.3 网络爬虫的基本原理326
14.2 网络爬虫的常用技术327
14.2.1 Python实现HTTP网络请求327
14.2.2 请求headers处理330
14.2.3 网络超时330
14.2.4 代理服务331
14.2.5 HTML解析器BeautifulSoup331
14.3 网络爬虫开发常用框架333
14.3.1 常用网络爬虫开发框架概述333
14.3.2 Scrapy网络爬虫框架的使用333
14.4 本章小结339
14.5 思考与练习339
第15章 数据分析与可视化基础340
15.1 数据分析基础与NumPy340
15.1.1 NumPy概述340
15.1.2 NumPy的对象ndarray341
15.1.3 NumPy的基本操作342
15.1.4 NumPy统计函数345
15.2 数据分析与Pandas351
15.2.1 Series对象及常用操作351
15.2.2 DataFrame对象及常用操作356
15.3 数据可视化与Matplotlib360
15.3.1 常用的数据可视化工具360
15.3.2 Matplotlib绘图的基本流程361
15.3.3 Matplotlib的基础绘图功能364
15.3.4 Matplotlib的常见图形绘制366
15.4 本章小结371
15.5 思考与练习371
|
內容試閱:
|
前 言
面向对象方法是计算机软件开发领域中的主流方法,其应用范围覆盖了业务建模、需求分析、系统设计、测试和维护等多个软件过程,甚至扩展到其他非计算机领域。统一建模语言(UML)的出现和发展,极大地促进了面向对象方法的不断丰富和日益成熟。深刻理解和领会面向对象的基本思想、基本概念和基本方法,熟练掌握和运用统一建模语言也已经成为软件开发人员必须具有的知识储备和重要技能。
本书系统介绍了面向对象的基础知识、基本理论,以及统一建模语言的应用方法;在总结了传统的结构化方法的基础上,详细介绍了面向对象方法的基础知识和基本概念,以及统一建模语言的概念、结构和各种模型元素。
为了使读者更好地理解UML的使用方法,本书引入了UML模型约束语言(OCL),并详细介绍了模型约束语言的基础知识和使用方法。对OCL的理解和掌握将直接影响面向对象方法中像约束、不变量、前置条件、后置条件和关联等抽象概念的理解。
为了帮助读者理解和掌握业务建模的一般规律和一般方法,也为了帮助读者理解业务建模在软件开发中的地位和作用,我们在书中加入了业务建模方面内容,包括业务的定义、业务规则的概念、业务模型的构成要素和建模方法等。这部分内容的引入,不仅可以帮助读者扩展知识视野,也可以有效地帮助读者加深对软件建模过程中涉及的相关问题的理解。
本书详细介绍了每一种标准UML模型的概念、构成元素、使用规则和建模方法,并引入了大量的模型实例。这些标准模型包括用例模型、类图模型、顺序图、通信图、状态图、活动图、构件图和部署图等。同时,还简要地介绍了部分UML 2.0中新增加的图,如复合结构图、交互概览图和时序图等。
本书详细地介绍了设计模式的基础知识和基本理论,简要地介绍了每种模式的定义、结构、适用情形和主要特点。最后,还给出了有关设计模式的应用案例。
最后,本书还提供了若干个带有源程序的软件设计案例,并希望这些案例能够帮助读者更加直观、全面和有效地理解面向对象方法中的基本概念、基本方法和开发过程。
本书也是对作者多年教学实践和软件开发经验的总结。在编写过程中,我们查阅了多种教材、专著、资料和文献。认真地编写、修改、核对和校对教材中出现的每一个概念和每一段陈述,精心设计了多个应用实例。书中的大多数实例均来源于实际的软件开发案例。
本书可作为高等院校软件及相关专业本科生或研究生的面向对象分析与设计课程教材或参考读物,也可以作为软件开发人员了解和学习面向对象方法的参考书。
全书共由13章组成。每一章的基本内容和教学建议如下。
第 1 章 面向对象开发方法。本章重点介绍面向对象的基本思想和基本特点;详细介绍了对象模型的各个构成要素及其主要特点;详细介绍了面向对象方法中的各基本概念及基本方法;简单介绍了面向对象的开发过程;阐述了面向对象分析与设计这两个过程之间的联系与区别;并给出了一个初步认识面向对象方法的简单例子。本章重点关注的是经典的面向对象开发方法和对象模型这两个部分的内容。
第 2 章 统一建模语言(UML)概述。本章简要地介绍了统一建模语言的发展历史、基本概念、基本结构、视图、图和公共机制等方面的内容;简单地介绍了各种图的构成和示例;比较详细地介绍了对象约束语言的结构、基本概念和使用方法。本章的教学重点内容包括统一建模语言的基本概念、基本结构、基本概念和模型元素的表示法。可以将对象约束语言部分作为自学内容,也可以作为第5章之后的讲解内容。
第3章 业务模型的建模。本章详细介绍了业务模型的概念、业务模型的基本结构,介绍了业务建模的主要动机;使用UML业务扩展进行业务建模的基本方法,业务模型与软件模型之间的关系;详细介绍了业务规则的概念、分类和表示方法,业务模型的各种要素及其表示法和业务过程的建模方法。本章的重点在于业务系统的概念、业务模型的基本结构、业务规则的概念和表示方法,以及业务模型的建模方法。
第4章 用例建模。本章重点介绍用例模型的概念、结构和建模方法,包括参与者、用例和它们之间的各种关系,如参与者之间的泛化关系、参与者和用例之间的关联以及用例之间的依赖等关系等;介绍了识别参与者和用例的基本方法;详细介绍了用例的结构和各种描述方法。本章的重点在于理解和掌握参与者、用例、参与者和用例之间的各种关系,用例图的绘制方法和用例描述的表示方法;本章的难点是用例描述的表示方法。
第5章 类图建模。本章主要介绍类图模型的结构的表示方法、概念和建模方法。首先介绍了类图中的类、对象、属性、方法、可见性、作用域,以及类(对象)之间各种关系的概念和表示法;其次,介绍了从用例模型识别概念并建立概念模型的建模方法;最后,介绍了问题域中类图的建模策略问题,如复用、增加基类、多继承的调整和关联的简化等多个问题。本章的重点在于理解和掌握类图的建模方法和使用类图建模概念模型的方法,难点在于对各种类关系的理解。
第6章 顺序图与通信图建模。本章主要介绍顺序图和通信图的结构、概念和建模方法;重点介绍了生命线、消息及消息分类、控制焦点、链接、并发和组合片段等概念;详细地介绍了顺序图和通信图之间的联系和区别。本章的重点在于顺序图与通信图的建模方法,难点在于顺序图和通信图之间的语义等价关系。
第7章 状态图与活动图建模。本章主要介绍状态图和活动图的结构、概念和建模方法;详细介绍了状态、复合状态、子状态、顺序子状态、并发子状态、历史子状态、状态迁移、活动、动作、控制流、信息流等概念及其使用方法;详细地介绍了这两种图的建模方法和应用领域。本章的重点在于状态图与活动图的建模方法,难点在于状态图的建模方法。
第8章 包图、组件图以及部署图建模。本章主要介绍包图、组件图以及部署图的结构、概念和建模方法;详细介绍了包图、包图的构成元素、可见性和包之间的各种依赖关系;介绍了包图的建模方法;详细介绍了组件图的概念、各种构成元素以及建模方法;介绍了部署图的概念、结构、构成元素及其建模方法。本章的重点在于包图、组件图以及部署图的建模方法,难点在于包之间的依赖关系。
第9章 UML模型与程序设计。本章介绍了UML模型与应用程序之间的映射问题,类图模型向程序代码之间的映射,包括类、属性、方法的映射;详细介绍了泛化和关联关系的映射,依赖、接口、包和特殊类的映射。本章的重点在于通过理解UML模型元素向程序的映射来加深对软件模型的理解,以提高读者使用UML模型分析和设计软件的能力。
第10章 面向对象设计原则。本章详细介绍了软件质量属性这一概念;介绍了如何开发满足质量要求的软件这一重要问题;详细介绍了基本的面向对象设计原则,以及如何落实这些原则以便开发出具有良好可维护性、可扩充性以及可重用性的软件;并给出了一个按照这些设计原则设计出来的一个具体的软件设计实例,在实际教学中,案例部分可安排自学。
第 11 章 设计模式及其应用。本章简要介绍了设计模式的基本概念和基本理论,每个GOF模式的定义、结构、特点和主要场景;详细介绍了一个具体的设计模式应用实例。本章的教学重点是设计模式的基本概念和基本理论,使用设计模式进行软件设计的基本方法。在学时不充裕的情况下,可以安排学生自学本章的内容。
第 12 章 对象的持久化。本章详细讨论了对象的持久化问题;介绍了比较常见的对象持久化方法;介绍了基于数据文件的持久化方法问题;并给出了比较具体的应用实例;详细说明了对象模型向数据库模型的具体映射及其实现方法。本章的重点在于对持久化概念和持久化技术的理解,对象模型向数据库模型的映射及其实现方法。
第 13 章 面向对象分析设计案例。本章介绍了一个比较完整的交互式图形编辑软件案例;详细地给出了案例的功能模型、概念模型和结构模型及其设计过程;详细介绍了案例中部分功能的具体实现;说明了动态模型在软件设计与实现中的具体应用和某些设计模式在案例软件设计中的应用。本章的重点是通过一个包含了完整的软件分析、设计和实现过程的案例,帮助读者理解面向对象的开发过程和设计方法,理解UML模型在软件开发过程中的地位和作用。在学时不充裕的情况下,可安排学生自学本章的内容。
本书由孙学波带领课题组编写完成,参加编写工作的课题组成员还有曾子维、李林林、姚红岩、张春娜。需要说明的是,课题组与苏州中元动力有限公司密切合作,共同完成了本书的编写工作。该公司的卢圣凯先生也积极参与到本书的编写工作中,为本书的顺利完成做出了积极的贡献。
在本书的编写过程中,我们查阅和参考了大量的文献资料,在此特向所有资料的提供者和作者们表示衷心的感谢!
由于作者的知识水平和能力有限,书中难免会存在错漏之处,敬请广大读者和同行们给予批评指正。
编 者
|
|