作者根据自己多年的前后端开发经验,站在完全零基础读者的角度,详尽介绍了Python编程语言的基础知识,以及大量的开发技巧,包括Python语基本语法、运算符与表达式、流程控制语句、列表与元组、字符串、字典与集合、Python中使用正则表达式、函数、数值计算、时间日期等。所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。每章最后还提供了难度适中的习题,检验学习效果。
Q:我一点编程基础都没有,也可以学会吗?
答:完全没有问题!在众多编程语言中,Python可以说是很容易入门的一个。即使你之前没有接触过一点编程,都可以很轻松地入门Python。实际上,现在很多中学都已经开设了Python编程课。
Q:这本书只会介绍入门方面的知识吗?
答:这几本书可不止于初级水平的教学。在精讲语法的同时,还穿插了各种开发技巧,让你的技术更胜别人一筹。
Q:学完这本书,我可以达到什么水平?
答:本书旨在让你快速上手Python。读完本书,你已经打下了坚实的基础,也达到了初级开发水平,接下来就可以开始学习更高级的技术,比如数据分析、网络爬虫等。
如果想要成为一名真正的Python工程师,想要更深入地学习Python,小伙伴们可以看一下本书的进阶篇《从0到1:Python进阶之旅》。
莫振杰,全栈工程师,涉猎包括前端、后端、Python等多个领域,熟练掌握JavaScript、Vue、React、Node.js、Python、SQL等多门技术。拥有一个非常受欢迎的个人网站:绿叶学习网,用于分享开发经验以及各种技术。
他还是多本图书的作者,凭着“从0到1”系列图书,曾获得“人民邮电出版社IT图书2020年最具影响力作者”。
目 录
第 1部分 基础篇
第 1章 认识Python 3
1.1 Python简介 3
1.1.1 Python是什么? 3
1.1.2 Python能干什么? 4
1.1.3 Python有什么特点? 5
1.2 教程介绍 5
1.2.1 Python版本 5
1.2.2 初学者关心的问题 6
1.3 安装Python 6
1.3.1 Windows系统 7
1.3.2 Mac系统 8
1.4 使用IDLE 9
1.4.1 IDLE的简单使用 10
1.4.2 保存代码到文件 11
1.5 使用VS Code 13
1.5.1 安装VS Code 13
1.5.2 安装插件 14
1.5.3 运行代码 15
1.6 使用PyCharm 17
1.6.1 安装PyCharm 18
1.6.2 安装插件 19
1.6.3 运行代码 20
1.7 本章练习 24
第 2章 语法基础 25
2.1 语法简介 25
2.2 变量与常量 26
2.2.1 变量 26
2.2.2 常量 29
2.3 数据类型 30
2.3.1 数字 30
2.3.2 字符串 31
2.3.3 判断类型 33
2.4 运算符 33
2.4.1 算术运算符 34
2.4.2 赋值运算符 35
2.4.3 比较运算符 35
2.4.4 逻辑运算符 36
2.4.5 成员运算符 38
2.4.6 身份运算符 39
2.5 表达式与语句 40
2.6 类型转换 40
2.6.1 数字转换为字符串 40
2.6.2 字符串转换为数字 41
2.6.3 整数与浮点数互转 42
2.7 转义字符 43
2.8 注释 44
2.8.1 单行注释 44
2.8.2 多行注释 45
2.8.3 编码注释 46
2.9 输出内容:print() 46
2.9.1 语法简介 46
2.9.2 常用参数 47
2.10 输入内容:input() 48
2.11 运算符优先级 49
2.11.1 优先级介绍 49
2.11.2 最佳实践 51
2.12 实战题:交换两个变量的值 52
2.13 实战题:交换个位和十位 52
2.14 本章练习 53
第3章 流程控制 55
3.1 流程控制简介 55
3.1.1 顺序结构 55
3.1.2 选择结构 56
3.1.3 循环结构 56
3.2 选择结构:if 57
3.2.1 单向选择:if 57
3.2.2 双向选择:if...else... 59
3.2.3 多向选择:if...elif...else... 60
3.2.4 if语句的嵌套 60
3.3 循环结构:while 62
3.4 循环结构:for 64
3.4.1 for循环 64
3.4.2 range() 65
3.5 break和continue 67
3.5.1 break 67
3.5.2 continue 68
3.6 实战题:找出水仙花数 69
3.7 实战题:求0~100中的所有质数 69
3.8 实战题:输出一个图案 70
3.9 本章练习 71
第4章 列表与元组 73
4.1 列表是什么? 73
4.2 列表的创建 74
4.3 基本操作 74
4.3.1 获取元素 74
4.3.2 修改元素 76
4.3.3 增加元素 76
4.3.4 删除元素 78
4.4 获取列表长度:len() 81
4.5 获取元素出现次数:count() 82
4.6 获取元素下标:index() 83
4.7 合并列表:extend() 84
4.8 清空列表 85
4.9 截取列表:[m:n] 85
4.10 遍历列表:for...in... 87
4.10.1 遍历列表中的每一项 87
4.10.2 获得索引 88
4.11 检索列表:in、not in 89
4.12 颠倒顺序:reverse() 89
4.13 大小排序:sort() 90
4.14 数值计算:max()、min()、sum() 91
4.15 将列表转换为字符串:join() 91
4.16 列表运算 92
4.17 二维列表 93
4.18 元组是什么? 94
4.18.1 元组介绍 94
4.18.2 元组操作 96
4.19 实战题:求列表中的最大值 97
4.20 实战题:输出星期数 98
4.21 本章练习 99
第5章 字符串 102
5.1 字符串是什么? 102
5.1.1 多行字符串 102
5.1.2 原始字符串 103
5.2 获取某一个字符 104
5.3 获取字符串长度 105
5.4 统计字符的个数:count() 106
5.5 获取字符的下标:index() 106
5.6 截取字符串:[m:n] 107
5.7 替换字符串:replace() 109
5.8 分割字符串 110
5.9 去除首尾符号 112
5.10 大小写转换 112
5.10.1 lower()和upper() 112
5.10.2 swapcase() 113
5.11 检索字符串 114
5.11.1 find() 114
5.11.2 startswith()和endswith() 115
5.11.3 深入了解 116
5.12 拼接字符串 116
5.12.1 %s 117
5.12.2 format() 117
5.13 类型转换 118
5.13.1 list() 118
5.13.2 tuple() 119
5.14 字符串的运算 120
5.15 实战题:统计单词的个数 121
5.16 实战题:将首字母转换成大写 121
5.17 本章练习 122
第6章 字典与集合 124
6.1 字典是什么? 124
6.2 字典的创建 125
6.3 基本操作 125
6.3.1 获取某个键的值 125
6.3.2 修改某个键的值 126
6.3.3 增加键值对 126
6.3.4 删除键值对 127
6.4 获取字典的长度 127
6.5 清空字典 128
6.6 复制字典 128
6.7 检索字典 129
6.8 获取键或值 129
6.8.1 keys() 130
6.8.2 values() 131
6.8.3 items() 132
6.9 集合是什么? 133
6.9.1 集合介绍 133
6.9.2 基本操作 134
6.9.3 集合操作 135
6.9.4 应用场景 136
6.10 实战题:统计数字出现的次数 137
6.11 实战题:统计出现次数最多的字母 137
6.12 本章练习 138
第7章 初识函数 140
7.1 函数是什么? 140
7.2 函数的定义 142
7.2.1 没有返回值的函数 142
7.2.2 有返回值的函数 143
7.2.3 全局变量与局部变量 144
7.3 函数的调用 145
7.3.1 直接调用 145
7.3.2 在表达式中调用 146
7.4 函数参数 147
7.4.1 形参和实参 147
7.4.2 参数可以是任何类型 147
7.5 嵌套函数 148
7.6 内置函数 149
7.6.1 内置函数介绍 149
7.6.2 统计函数 150
7.7 实战题:判断某一年是否为闰年 152
7.8 实战题:冒泡排序 152
7.9 本章练习 153
第8章 数学计算 155
8.1 数学计算简介 155
8.2 求绝对值 157
8.3 四舍五入 157
8.4 取整运算 158
8.4.1 向上取整:ceil() 158
8.4.2 向下取整:floor() 159
8.5 平方根与幂运算 160
8.6 圆周率 161
8.7 三角函数 162
8.8 生成随机数 163
8.8.1 随机整数 164
8.8.2 随机浮点数 165
8.8.3 随机序列 166
8.9 实战题:生成随机验证码 168
8.10 本章练习 169
第9章 日期时间 171
9.1 日期时间简介 171
9.2 time模块 172
9.2.1 获取日期时间 172
9.2.2 格式化日期时间 173
9.2.3 struct_time元组 175
9.3 datetime模块 177
9.3.1 获取日期时间 177
9.3.2 设置日期时间 179
9.4 实战题:自定义日期时间格式 180
9.5 实战题:计算函数执行时间 181
9.6 本章练习 182
第 2部分 提高篇
第 10章 面向对象 185
10.1 面向对象是什么? 185
10.2 类和对象 186
10.3 构造函数:_ _init_ _() 188
10.4 类属性和实例属性 190
10.5 类方法和实例方法 192
10.6 静态方法 193
10.7 继承 194
10.8 实战题:封装一个矩形类 196
10.9 实战题:封装一个时间类 197
10.10 本章练习 198
第 11章 包与模块 200
11.1 包和模块简介 200
11.1.1 包是什么? 200
11.1.2 模块是什么? 201
11.2 自定义包 201
11.3 自定义模块 202
11.4 以主程序形式执行 204
第 12章 文件操作 206
12.1 文件操作简介 206
12.2 文件路径 206
12.2.1 绝对路径 207
12.2.2 相对路径 207
12.3 读取文件 208
12.3.1 读取所有内容:read() 208
12.3.2 逐行读取内容:readlines() 209
12.4 写入文件 211
12.4.1 以覆盖方式写入文件 211
12.4.2 以追加方式写入文件 213
12.5 os模块 214
12.5.1 获取工作目录 214
12.5.2 改变工作目录 215
12.5.3 列举所有文件 216
12.5.4 重命名文件 217
12.5.5 遍历文件 217
12.5.6 拼接文件路径 219
12.5.7 获取文件大小 220
12.5.8 判断文件或文件夹是否存在 221
12.5.9 获取文件时间 222
12.6 异常处理 223
12.6.1 try...except...finally...语句 223
12.6.2 with语句 224
12.7 shutil模块 225
12.7.1 复制文件与文件夹 225
12.7.2 移动文件与文件夹 226
12.7.3 删除文件与文件夹 227
12.8 send2trash模块 228
12.9 zipfile模块 229
12.9.1 读取文件 229
12.9.2 解压文件 230
12.9.3 压缩文件 231
12.10 实战题:读写.txt文件 233
12.11 实战题:删除某一类型的文件 234
12.12 实战题:批量修改文件名 235
12.13 本章练习 236
第 13章 文件格式 238
13.1 文件格式简介 238
13.2 JSON文件 238
13.2.1 JSON介绍 238
13.2.2 操作JSON数据 239
13.2.3 操作JSON文件 241
13.3 CSV文件 243
13.3.1 CSV介绍 243
13.3.2 操作CSV文件 244
13.4 Excel文件 248
13.4.1 Excel介绍 248
13.4.2 读取Excel文件 248
13.5 实战题:逆序输出 253
13.6 本章练习 254
第 14章 异常处理 255
14.1 异常是什么? 255
14.1.1 异常介绍 255
14.1.2 常见异常 255
14.2 处理异常 257
14.2.1 try...except...语句 257
14.2.2 else子句 261
14.2.3 finally子句 261
14.3 深入了解 263
14.3.1 低级错误 263
14.3.2 中级错误 263
14.3.3 高级错误 264
14.4 本章练习 265
第 15章 正则表达式 266
15.1 正则表达式是什么? 266
15.2 正则表达式的使用 267
15.3 元字符 268
15.4 连接符 269
15.5 限定符 270
15.6 定位符 271
15.7 分组符 272
15.8 选择符 273
15.9 转义字符 274
15.10 不区分大小写的匹配 275
15.11 贪心与非贪心 275
15.12 sub() 276
15.13 match()和search() 277
15.14 实战题:匹配手机号码 279
15.15 实战题:匹配身份证号码 279
15.16 本章练习 280
第3部分 应用篇
第 16章 图像处理 285
16.1 应用技术简介 285
16.2 Pillow库 285
16.2.1 Pillow库介绍 285
16.2.2 颜色值 286
16.2.3 像素 287
16.2.4 坐标系 287
16.3 图片操作 288
16.3.1 创建区域:Image.new() 290
16.3.2 改变大小:resize() 291
16.3.3 切割图片:crop() 291
16.3.4 旋转图片:rotate() 292
16.3.5 翻转图片:transpose() 293
16.3.6 复制和粘贴:copy()、paste() 294
16.4 绘制图形 295
16.4.1 点 296
16.4.2 直线 297
16.4.3 矩形 298
16.4.4 多边形 299
16.4.5 圆弧 300
16.4.6 扇形 302
16.4.7 圆或椭圆 303
16.5 绘制文本 305
16.5.1 文本的绘制方法 305
16.5.2 设置字体 306
16.6 图片美化 307
第 17章 数据可视化 310
17.1 数据可视化简介 310
17.2 拆线图 311
17.2.1 基本语法 311
17.2.2 自定义样式 314
17.3 通用设置 319
17.3.1 定义标题 320
17.3.2 定义图例 322
17.3.3 画布样式 323
17.3.4 坐标轴刻度 323
17.3.5 坐标轴范围 326
17.3.6 网格线 327
17.3.7 描述文本 329
17.3.8 添加注释 330
17.4 通用样式参数 332
17.5 柱状图 332
17.5.1 基本语法 332
17.5.2 高级绘图 333
17.6 直方图 336
17.6.1 基本语法 336
17.6.2 自定义样式 338
17.7 饼状图 339
17.7.1 基本语法 339
17.7.2 自定义样式 340
17.8 散点图 344
17.8.1 基本语法 344
17.8.2 自定义样式 345
17.9 面积图 347
17.9.1 基本语法 347
17.9.2 高级绘图 348
17.10 子图表 349
17.11 实战题:从CSV文件中读取数据并
绘图 352
第 18章 数据库操作 354
18.1 数据库简介 354
18.2 操作SQLite 354
18.2.1 创建数据库 355
18.2.2 增删查改操作 356
18.3 操作MySQL 360
18.3.1 安装MySQL 360
18.3.2 安装Navicat for MySQL 364
18.3.3 操作数据库 368
18.4 操作MongoDB 370
18.4.1 安装MongoDB 370
18.4.2 连接MongoDB 374
18.4.3 操作数据库 375
18.4.4 增删查改操作 376
第 19章 GUI编程 384
19.1 tkinter简介 384
19.2 文本与图片 385
19.2.1 Label组件介绍 385
19.2.2 Label组件的样式参数 387
19.2.3 使用内置图片 388
19.3 Button组件 389
19.4 复选框 391
19.5 单选按钮 393
19.6 分组框 395
19.7 文本框 396
19.8 列表框 397
第 20章 电子邮件 399
20.1 电子邮件简介 399
20.2 发送纯文本格式的邮件 401
20.3 发送HTML格式的邮件 404
20.4 发送带附件的邮件 406
20.4.1 附件为文本类型 406
20.4.2 附件为其他类型 408
附录A Python关键字 411
附录B 数据类型 412
附录C 运算符优先级 413
附录D 列表常用的方法 414
附录E 字符串常用的方法 415
附录F 字典常用的方法 416
附录G 数学运算 417
附录H Python模块 418
后记 419