本书详细介绍了Python3 编程从零基础到实战的相关知识,前面7 章为基础部分,主要介绍Python3 编程的基本知识;后面8 章从实战应用的角度分别介绍数据可视化、交互式可视化和数据处理、UI 界面设计与计算机桌面自动化、数据库(主要是MySQL 数据库的增删改查)、机器学习、Git 使用等内容。本书以简单、实用、易懂为原则,力求使读者在学会Python基础知识的同时,掌握实战与应用技能。
本书适合刚入门的Python 学习人员以及利用开源工具进行开发与应用的爱好者、研究人员参考阅读。
杨涵文,大学为计算机科学与技术专业,长期研究python领域知识技术。CSDN博主,拥有2w+粉丝,作者周榜前五。主要研究方向有数学建模;python初中高阶领域知识,不限于基础,爬虫、数据处理、自然语言处理等;计算机Linux操作系统;数据结构;SQL数据库也颇有研究。多次协作完成任务,也会在哔哩哔发视频讲解。曾参加国家大学生创新创业大赛,获得专利一个,软著一个,国家创新创业训练结题书一份。参加一次互联网+比赛获得上海市奖。
陈姗姗,上海工程技术大学,讲师,陈姗姗,讲师,上海大学理学博士,澳大利亚西澳大学访问学者,参与三项国家自然科学基金项目,主要研究复杂网络上的传播动力学相关的理论、数值方法,生物数学以及网络科学与人工智能。担任SCI期刊IEEE Transactions on Circuits and Systems II的审稿人。致力于网络科学与大数据分析的相关科研工作。研究方向:复杂网络传播动力学、网络科学与人工智能、生物数学。
第1章 Python3 环境搭建 001
1.1 Python3 安装 001
1.2 PyCharm 安装与配置 003
1.2.1 Windows 下安装PyCharm 003
1.2.2 配置镜像源 008
1.2.3 安装自动补码插件 011
1.2.4 安装界面汉化插件 012
1.2.5 自定义脚本开头 013
1.2.6 创建第一个Python 文件 014
1.3 jupyter 安装与配置 015
1.3.1 安装jupyter 015
1.3.2 汉化 019
1.3.3 运行第一个代码 020
1.3.4 菜单栏介绍 021
1.3.5 注释编辑 022
1.3.6 配置镜像源 023
1.3.7 conda 创建虚拟环境 025
第2章 基础入门知识 027
2.1 快速入门 027
2.1.1 打印输出 027
2.1.2 添加注释 028
2.2 变量 030
2.2.1 变量的基本知识 030
2.2.2 变量的格式化字符串输出 034
2.3 数据类型 036
2.4 数学计算 039
2.4.1 三种数字类型 039
2.4.2 数字类型转换 040
2.4.3 实现简单的四则运算 040
2.4.4 一些运算符的区别 041
2.5 字符串 042
2.5.1 字符串的基本使用 042
2.5.2 字符串切片 045
2.5.3 字符串变换 046
2.5.4 字符串拼接 047
2.5.5 字符串的其他操作 048
综合练习 049
第3章 数据结构类型 050
3.1 列表 050
3.1.1 列表基本知识 050
3.1.2 访问列表 051
3.1.3 列表值的修改 052
3.1.4 列表值的插入 053
3.1.5 列表值的删除 053
3.1.6 列表的排序 054
3.1.7 列表的合并 055
3.2 元组 056
3.2.1 元组的基本知识 056
3.2.2 访问元组 056
3.2.3 修改元组 058
3.2.4 解包元组 059
3.2.5 合并元组 060
3.3 集合 060
3.3.1 集合的基本知识 060
3.3.2 删除集合中的值 061
3.3.3 集合的合并 062
3.4 字典 063
3.4.1 字典的基本知识 063
3.4.2 字典的修改 065
3.4.3 字典的遍历 066
3.4.4 嵌套型字典 067
综合练习 068
第4章 控制流 070
4.1 if 语句 070
4.1.1 if 语句的基本知识 070
4.1.2 if…else 语句 071
4.1.3 elif 方法的使用 072
4.1.4 and 方法的使用 073
4.1.5 or 方法的使用 074
4.1.6 嵌套if 语句 074
4.2 for 循环 075
4.2.1 简单使用 075
4.2.2 中断循环 076
4.2.3 continue 声明 076
4.2.4 range( )函数 076
4.2.5 嵌套循环 077
4.3 while 循环 078
4.3.1 简单使用 078
4.3.2 中断循环 079
4.3.3 continue 声明 079
4.4 match 语句 080
综合练习 081
第5章 函数 082
5.1 定义和调用函数 082
5.1.1 基本使用 082
5.1.2 简单应用 082
5.2 需要传参的函数 083
5.2.1 函数分类 083
5.2.2 函数返回值 084
5.2.3 全局关键字使用 085
5.3 函数类型 085
5.4 函数的递归 086
5.5 lamada 表达式 087
5.6 变量的分类 088
5.6.1 局部变量 088
5.6.2 全局变量 088
5.7 异常处理 089
5.7.1 异常处理的基本形式 089
5.7.2 else 搭配 089
5.7.3 finally 语句 090
5.8 函数装饰器 091
5.8.1 第一类对象 091
5.8.2 装饰器的简单实现 092
5.8.3 装饰器的使用 092
5.8.4 链式装饰器 094
5.8.5 记忆性装饰器 094
综合练习 095
第6章 面向对象 097
6.1 类和对象的基本理解 097
6.1.1 定义与区别 097
6.1.2 类的构成 097
6.2 类与对象的构建 097
6.2.1 创建类 097
6.2.2 创建并调用对象 098
6.2.3 对象中添加属性与获取 099
6.3 构造函数 099
6.3.1 默认构造函数 099
6.3.2 参数化构造函数 100
6.3.3 对象删除 101
6.4 单继承 101
6.4.1 创建父类 102
6.4.2 创建子类 102
6.4.3 子类初始化 102
6.4.4 super( )方法 103
6.4.5 添加属性 103
6.4.6 添加方法 104
6.5 多继承 104
综合练习 105
第7章 实例与应用 106
7.1 词云绘制 106
7.1.1 基本的词云制作 106
7.1.2 制作更加有趣的词云 107
7.2 视频剪辑 109
7.2.1 环境配置 109
7.2.2 视频转gif 111
7.2.3 视频截取 112
7.3 二维码制作 113
7.3.1 制作彩色的二维码 113
7.3.2 制作动态二维码 113
7.4 批量数据爬取 114
7.4.1 必应爬虫 114
7.4.2 图片筛选 114
7.5 石头、剪刀、布游戏 115
第8章 matplotlib 数据可视化 118
8.1 模块简介 118
8.2 常见图形绘制 118
8.2.1 折线图绘制 118
8.2.2 散点图绘制 124
8.2.3 柱形图绘制 125
8.2.4 直方图绘制 126
8.2.5 扇形图绘制 127
8.2.6 堆叠的条形图绘制 129
8.2.7 箱形图绘制 129
8.2.8 标签和坐标轴绘制 129
第9章 pyecharts 交互式可视化 131
9.1 pyecharts 基础引导 131
9.1.1 模块概述 131
9.1.2 图表基础 131
9.2 常见的各种图表绘制 133
9.2.1 直方图绘制 133
9.2.2 箱形图绘制 136
9.2.3 散点图绘制 137
9.2.4 折线图绘制 138
9.2.5 K 线图绘制 139
9.2.6 饼图绘制 140
9.2.7 水球图绘制 141
9.3 图形简单组合布局 141
9.3.1 优美的主题图 143
9.3.2 图表数据突出 144
9.4 词云制作 145
综合练习 147
第10章 pandas 数据处理基础 149
10.1 概述 149
10.2 简单快速的入门 149
10.2.1 创建DataFrame 149
10.2.2 设置索引 150
10.2.3 索引值 151
10.2.4 读取和写入文件 151
10.2.5 查看数据信息 152
10.3 索引选择和排序分组 153
10.3.1 按列索引 153
10.3.2 按行索引 154
10.3.3 按区域筛选数据 155
10.3.4 条件筛选 155
10.3.5 排序 156
10.3.6 数据分组 156
10.4 数据的增删 157
10.4.1 行数据的增加 158
10.4.2 新增一列数据 158
10.4.3 删除一列数据 158
10.5 数据表拼接 159
10.5.1 横向拼接 159
10.5.2 纵向拼接 160
10.6 统计计算 161
10.6.1 数据相关性计算 161
10.6.2 变化率计算 161
10.6.3 协方差计算 162
10.7 数据清洗 162
10.7.1 检查过滤缺失数据 162
10.7.2 修改缺失数据 163
10.7.3 填充缺失数据 163
10.7.4 剔除重复标签数据 164
10.7.5 简单数据分析 165
10.8 One-hot 编码 168
10.9 pandas 数据可视化 170
10.9.1 折线图 170
10.9.2 柱形图 171
10.9.3 直方图 171
10.9.4 箱形图 172
10.9.5 面积图 172
10.9.6 散点图 173
10.9.7 扇形图 173
10.9.8 表格 174
10.10 实战:汽车数据分析 176
10.11 实战:股票数据分析 179
第11章 UI 界面设计 183
11.1 UI 框架介绍 183
11.2 Tkinter 基础 183
11.2.1 搭建第一个UI 界面 183
11.2.2 添加一个按钮 183
11.2.3 设置窗口大小和标题 185
11.2.4 设置复选框 186
11.2.5 设置输入框 186
11.2.6 使用Frame 框架 189
11.2.7 文本显示 190
11.2.8 添加菜单栏 190
11.3 剪刀、石头、布UI 设计 192
11.4 计算器UI 设计 197
第12章 计算机桌面自动化 205
12.1 鼠标的自动控制 205
12.1.1 桌面大小获取与鼠标指针定位 205
12.1.2 鼠标的移动与单击控制 206
12.1.3 鼠标的相对移动与右击控制 207
12.1.4 鼠标滚动 207
12.1.5 窗口拖动控制 208
12.2 键盘自动化控制 208
12.2.1 键盘写入 208
12.2.2 键盘快捷键 209
12.3 消息框提示 211
12.4 截图功能 212
12.4.1 基本截图 212
12.4.2 图像定位 212
12.5 案例实现 213
12.5.1 selenium 环境搭建与简单使用 213
12.5.2 结合selenium 模拟滑动 215
12.5.3 模拟微信发送消息 215
12.5.4 模拟表单填写 216
第13章 MySQL 数据库 219
13.1 为什么要学习数据库 219
13.2 MySQL 下载与安装 219
13.3 cmd 界面的基本操作 222
13.3.1 基本连接与断开 222
13.3.2 基本的输入查询 223
13.3.3 数据库简单使用 224
13.3.4 表的创建与删除 224
13.3.5 数据类型 225
13.3.6 数据插入表中 225
13.3.7 表的更改 226
13.3.8 表的查询 227
13.3.9 数据库的备份与恢复 228
13.3.10 小结 230
13.4 单表查询 230
13.4.1 navicat 的连接 231
13.4.2 创建数据表 231
13.4.3 select 选择语句 234
13.4.4 select distinct 语句 235
13.4.5 where 查询子句 235
13.4.6 and、or、not 使用 238
13.4.7 order by 子句使用 239
13.4.8 insert into 插入语句 240
13.4.9 NULL 空值 241
13.4.10 update 更新语句 242
13.4.11 delete 删除语句 243
13.4.12 limit 限制语句 243
13.4.13 max、min 最值查询 243
13.4.14 count、avg、sum 计数查询 244
13.4.15 like 模糊查询 245
13.4.16 in 符号 247
13.4.17 as 取别名 248
13.4.18 group by 分组查询 249
13.4.19 having 条件 249
13.4.20 union 联合查询 250
13.5 多表查询 252
13.5.1 内连接 253
13.5.2 左连接 253
13.5.3 右连接 254
13.5.4 交叉连接 254
13.5.5 自然连接 254
13.6 Python 对接MySQL 255
13.6.1 连接数据库 255
13.6.2 数据库创建与检查 256
13.6.3 表的创建与插入 257
13.6.4 数据选择 258
13.6.5 where 筛选 259
13.6.6 表的更新 260
13.7 实战 261
13.7.1 表的设计 261
13.7.2 案例实践(一) 262
13.7.3 案例实践(二) 263
第14章 机器学习 265
14.1 机器学习基础 265
14.1.1 什么是机器学习 265
14.1.2 机器学习的分类 265
14.1.3 机器学习的搭建步骤 266
14.1.4 常用术语 266
14.1.5 常用性能指标 267
14.2 线性回归 268
14.2.1 简单线性回归基本思想 268
14.2.2 案例:学习时间与分数预测 269
14.2.3 多项式回归基本思想 271
14.2.4 案例:职位薪金预测 271
14.2.5 多元线性回归基本思想 273
14.2.6 案例:波士顿房价预测 273
14.3 逻辑回归 278
14.3.1 逻辑回归基本思想 278
14.3.2 案例:糖尿病预测 279
14.4 朴素贝叶斯分类 284
14.4.1 朴素贝叶斯基本思想 284
14.4.2 朴素贝叶斯分类与假设 284
14.4.3 案例:鸢尾花分类 285
14.4.4 案例:文本分类 286
14.4.5 朴素贝叶斯的优缺点 287
14.5 支持向量机 288
14.5.1 支持向量机介绍 288
14.5.2 最佳超平面 288
14.5.3 案例:乳腺癌预测分类 288
14.5.4 支持向量机优缺点 292
14.6 决策树 293
14.6.1 决策树的基本思想 293
14.6.2 特征选择 294
14.6.3 信息增益 294
14.6.4 信息增益比 295
14.6.5 基尼指数 295
14.6.6 决策树参数 295
14.6.7 案例:鸢尾花分类 296
14.6.8 决策树的优缺点 300
14.7 主成分分析 300
14.7.1 主成分分析简介 300
14.7.2 案例:葡萄酒分类 301
14.7.3 主成分分析的优缺点 305
14.8 K-Means 聚类 306
14.8.1 K-Means 聚类基本思想 306
14.8.2 案例:商场消费分析 306
14.8.3 K-Means 聚类的优缺点 309
14.9 集成学习 309
14.9.1 理解集成学习 309
14.9.2 bagging(袋装)基本思想 309
14.9.3 案例:糖尿病人数预测 310
14.9.4 boosting 基本思想 313
14.9.5 Adaboost(自适应增强)案例 313
14.9.6 XGBoost 基本思想 314
14.9.7 案例:波士顿房价预测 315
14.10 模型的保存与加载 319
14.10.1 模型的保存 320
14.10.2 模型的加载 320
第15章 Git 项目管理 321
15.1 Git 环境搭建 321
15.2 Git 的配置 323
15.3 仓库基本管理 325
15.3.1 创建仓库 325
15.3.2 添加密钥 326
15.3.3 远程上传文件 328
15.3.4 远程下载 330
15.4 提交历史 331
15.4.1 常见命令 331
15.4.2 过滤提交 332