给所有人的Python 第4版
作者: [日]柴田淳
出版时间:2019年版
内容简介
本书由浅入深地从软件安装环境到基础语法与应用来讲解面向对象脚本语言Python。本书共13章,主要讲解Python的语法以及Python的相关应用,最后还比较了Python 2与Python 3之间的差别,以供读者参考。 本书既可作为Python开发入门者的自学用书,也可作为高等院校相关专业的教学参考书。
目录
第1章 程序设计语言Python 1
1.1 Python的魅力 1
1.1.1 Python很容易记忆 2
1.1.2 Python很容易使用 3
1.1.3 Python有广阔的前景 4
1.2 Python(Anaconda)的下载和安装… 6
1.2.1 什么是Anaconda 6
1.2.2 必要的学习环境7
1.2.3 在 Windows系统中安装Anaconda 8
1.2.4 在macOS(OS X)系统中安装Anaconda 9
1.2.5 在Linux系统中安装 Anaconda 10
1.2.6 已经安装Python的情况 11
1.2.7 安装本家版Python 11
1.3 交互式脚本(对话型脚本) 13
1.3.1 在 Windows系统中启动交互式脚本 13
1.3.2 在 macOS、Linux系统中启动交互式脚本14
1.3.3 输入Python代码15
1.3.4 关闭交互式脚本20
1.4 在文件中编写Python程序 20
1.4.1 使用Editor(编辑器)编写程序21
1.4.2 保存Python程序 21
1.4.3 在 Windows系统中运行Python的脚本文件22
1.4.4 在 macOS、Linux系统中执行Python的脚本文件 23
1.4.5 推荐的编辑器和选择方法24
1.5 使用Jupyter Notebook 26
1.5.1 在 Windows、macOS系统中启动内核 28
1.5.2 在Linux系统中启动内核 28
1.5.3 使用主面板29
1.5.4 制作Notebook29
1.5.5 使用Notebook运行程序 30
1.5.6 保存Notebook 32
1.5.7 结束Notebook 33
1.5.8 使用Jupyter Notebook的tmpnb 33
1.5.9 示例代码的运行方法34
第2章 用Python开始程序设计36
2.1 使用数值36
2.1.1 使用数值的四则运算37
2.1.2 四则运算和优先顺序38
2.2 使用变量38
2.2.1 定义变量38
2.2.2 使用变量进行计算39
2.3 使用字符串41
2.3.1 定义字符串41
2.3.2 字符串的连接42
2.3.3 复合运算符43
2.3.4 统一类型的Python风格 44
2.3.5 字符串与数值的转换(类型转换) 45
2.4 使用列表47
2.4.1 定义列表47
2.4.2 指定索引取出元素48
2.4.3 列表的连接50
2.4.4 元素的置换和删除50
2.4.5 使用切片取出多个元素52
2.4.6 列表的列表———二维数组53
2.4.7 列表的合计、最大值和最小值55
2.4.8 查看列表长度56
2.5 用for语句进行循环操作 57
2.6 用if语句进行条件分支 61
2.6.1 比较数值63
2.6.2 比较字符串63
2.6.3 检索字符串64
2.6.4 比较列表64
2.6.5 检索列表元素65
2.6.6 使用else语句 65
2.7 使用函数69
2.7.1 什么是函数69
2.7.2 调用函数70
2.7.3 函数的参数70
2.7.4 函数的返回值(1) 71
2.7.5 定义函数72
2.7.6 定义参数74
2.7.7 函数的返回值(2) 75
2.7.8 本地变量76
2.8 使用模块79
2.8.1 导入模块80
2.8.2 import语句的as 81
2.8.3 使用了from的导入 81
2.8.4 模块的查找方法82
第3章 掌握Python的基础83
3.1 使用字典83
3.1.1 什么是字典83
3.1.2 使用键取出元素84
3.1.3 使用键替换元素85
3.1.4 添加新的键与值86
3.1.5 使用键删除元素87
3.1.6 确认键的存在88
3.1.7 使用键的循环89
3.2 使用set(集合) 90
3.2.1 定义set 91
3.2.2 求set的并集 91
3.2.3 求set的差集 92
3.2.4 求set的交集 92
3.2.5 求set的异或 93
3.2.6 set与列表 94
3.2.7 set与比较 94
3.3 使用元组95
3.4 if语句的应用99
3.4.1 比较运算符99
3.4.2 比较运算符与True和False 99
3.4.3 关于比较的备忘录 100
3.4.4 复杂的比较———逻辑运算 100
3.5 循环的应用 101
3.5.1 使用while语句制作循环 101
3.5.2 使用了break语句和continue语句的循环控制 103
3.5.3 循环的else 105
3.6 函数的应用 105
3.6.1 对函数定义默认参数 106
3.6.2 参数的关键字指定 107
3.6.3 函数和本地变量 108
第4章 熟练使用内置类型111
4.1 作为对象的内置类型概述 111
4.1.1 什么是方法 111
4.1.2 作为对象的内置类型 113
4.1.3 内置的数据类型一览 114
4.1.4 数据类型的分类 116
4.1.5 序 列 116
4.1.6 可更改和不可更改 117
4.1.7 set类型和字典类型117
4.2 操作数值类型 118
4.2.1 十六进制的表示方法 118
4.2.2 二进制的表示方法119
4.2.3 八进制的表示方法 120
4.2.4 位运算 121
4.3 熟练使用字符串类型 121
4.3.1 字符串的替换和删除 121
4.3.2 split()方法和join()方法 122
4.3.3 转义序列 124
4.3.4 raw字符串 126
4.3.5 字符串中可以使用的方法 126
4.3.6 字符串的格式化 128
4.4 熟练掌握列表类型和元组类型 132
4.4.1 给列表排序 132
4.4.2 自定义排列顺序 133
4.4.3 解包代入 134
4.4.4 切片的步长数 135
4.4.5 使用了切片元素的代入和删除135
4.4.6 列表中可以使用的方法 136
4.5 熟练使用set类型 137
4.6 熟练掌握字典类型 138
4.6.1 通过序列等制作字典 138
4.6.2 将两个字典进行组合 139
4.6.3 巧妙处理字典的键 139
4.6.4 灵活运用字典中的方法 140
4.7 if语句和内置类型142
4.8 for语句和内置类型142
4.8.1 熟练使用range()函数 142
4.8.2 序列和循环计数器143
4.8.3 使用两个序列的循环 144
4.9 函数和内置类型 145
4.9.1 返回值和解包代入 145
4.9.2 在函数中接收参数列表 146
4.9.3 在函数中接收关键字参数 147
4.10 Python的字符串和日语 147
4.10.1 有关字符编码的基础知识147
4.10.2 Python和 Unicode 150
4.10.3 字节类型150
4.10.4 字符串向字节类型转换152
4.10.5 字节类型向字符串类型转换153
4.10.6 脚本文件的编码指定153
4.10.7 编码的判断154
4.10.8 编码和乱码154
4.10.9 多字节字符和字符的分界156
4.11 Python的文件处理 156
4.11.1 文件和文件对象158
4.11.2 从文件中读取160
4.11.3 写入文件162
4.11.4 处理二进制文件162
4.11.5 文件名称的处理163
第5章 Python与函数式程序设计 165
5.1 什么是函数式程序设计 165
5.1.1 Python的语句和表达式 167
5.1.2 Lambda表达式 167
5.2 解析式 168
5.2.1 列表解析式 169
5.2.2 列表解析式的详细介绍 169
5.2.3 在列表解析式中使用if 170
5.2.4 字典解析式 171
5.2.5 set解析式172
5.3 使用迭代 172
5.3.1 什么是迭代 172
5.3.2 迭代和延迟评价 173
5.4 使用生成器 175
5.4.1 定义生成器函数 176
5.4.2 生成器表达式 176
5.5 高阶函数和装饰器177
5.5.1 高阶函数 177
5.5.2 装饰器 179
第6章 类与面向对象开发181
6.1 在Python中使用类181
6.1.1 对象和类 181
6.1.2 由类制作对象(实例) 182
6.1.3 使用实例 183
6.1.4 对象和实例183
6.2 制作类184
6.2.1 定义类 185
6.2.2 实例的属性 185
6.2.3 方法的定义与初始化方法“__init__()” 187
6.2.4 方法与第一参数“self” 188
6.2.5 属性的隐蔽性 192
第7章 类的继承与高级面向对象功能194
7.1 继承类 194
7.1.1 指定超类 195
7.1.2 方法的重写 195
7.1.3 初始化方法的重写 196
7.1.4 得到使用super()的超类 197
7.1.5 插 槽 198
7.1.6 特 征 199
7.2 使用特殊方法 200
7.3 继承内置类型 206
第8章 模 块209
8.1 创建模块文件夹 209
8.1.1 导入模块时的操作 210
8.1.2 仅在执行文件时执行的块 211
8.1.3 类与模块 212
8.2 模块的层次(包) 213
8.2.1 包的本质 213
8.2.2 创建包 214
8.3 使用模块时的注意事项 214
8.3.1 使用from语句导入的弊端 214
8.3.2 模块的搜索顺序 214
8.4 使用第三方模块 215
8.4.1 模块的搜寻方法 215
8.4.2 使用pip安装模块 216
8.4.3 使用conda安装模块 217
8.4.4 模块的种类 217
8.4.5 手动安装模块 218
8.4.6 模块的设置场所和Python的版本 218
第9章 作用域与对象221
9.1 命名空间、作用域221
9.1.1 作用域的规则 222
9.1.2 类、实例的作用域224
9.2 纯粹面向对象语言Python 225
9.2.1 对象与属性 225
9.2.2 魔法函数dir()226
9.2.3 作为属性的方法 227
9.2.4 全部都是对象 228
9.2.5 对象与类型228
9.2.6 对象与属性 230
9.2.7 类、模块与属性231
9.2.8 对象和变量 231
9.2.9 对象与命名空间 232
第10章 异常处理 234
10.1 Python的异常处理 234
10.1.1 异常的发生234
10.1.2 捕获异常235
10.1.3 with语句 237
10.1.4 异常与追溯237
10.1.5 引发(raise)异常238
10.1.6 显示追溯238
10.2 常见错误或异常与对策239
10.2.1 读取程序时发生的错误(SyntaxError) 240
10.2.2 程序执行中发生的错误(Exception) 240
第11章 使用标准库 243
11.1 标准库的导入243
11.2 数据结构244
11.2.1 保持添加时顺序的“collections.OrderedDict” 244
11.2.2 带有默认值的字典“collections.defaultdict” 245
11.2.3 协助列表sort的“bisect” 246
11.3 处理日期数据的“datetime、calendar” 247
11.3.1 日期与时刻和字符串249
11.3.2 日期与时刻的运算和比较250
11.3.3 使用datetime.date类的方法 251
11.3.4 使用datetime.datetime类的方法 252
11.3.5 使用calendar模块 252
11.4 正则表达式“re” 254
11.4.1 re模块 254
11.4.2 Python的正则表达式 255
11.4.3 正则表达式的pattern字符串 255
11.4.4 使用正则表达式对象257
11.4.5 将模式传递给参数,进行正则表达式的处理 259
11.4.6 使用匹配对象260
11.4.7 正则表达式的示例261
11.5 获取操作系统参数的“sys” 261
11.5.1 获取命令行的参数261
11.5.2 程序的结束262
11.5.3 其他函数与变量262
11.6 获得及操作文件、进程等依赖 OS信息的“OS” 262
11.6.1 获取、操作与进程相关的信息 262
11.6.2 文件与目录的操作263
11.6.3 进程管理265
11.6.4 在交换平台使用了路径的操作266
11.7 使用数学函数“math”“random” 267
11.7.1 math———数学函数模块 267
11.7.2 random———生成随机数 269
11.8 获取因特网上数据的“urllib” 270
11.8.1 从 Web或FTP中获取文件271
11.8.2 使用request.urlretrieve()函数的示例代码 271
11.8.3 从 Web或FTP中读取数据272
11.8.4 在urlopen()返回的对象中可以使用的方法 272
11.8.5 BASIC认证 273
11.8.6 用POST方式传输数据 274
11.8.7 其他函数275
11.9 创建字符串库虚拟文件的“io.StringIO” 276
11.10 CSV(逗号分隔值)文件的操作 277
11.11 对象持久化与序列化“shelve”“pickle” 278
11.11.1 将字典持久化的“shelve” 279
11.11.2 执行对象持久化与序列化的“pickle” 280
11.12 处理JSON数据的“json” 282
11.12.1 将JSON转换为Python的数据类型283
11.12.2 Python的数据类型转换为JSON 283
11.12.3 json的使用示例 284
第12章 Python与数据科学 285
12.1 NumPy与 matplotlib 285
12.1.1 所谓的 NumPy与 matplotlib 285
12.1.2 使用NumPy 287
12.1.3 使用 matplotlib 290
12.2 使用NumPy 291
12.2.1 生成NumPy的array 291
12.2.2 使用数组的运算293
12.2.3 访问元素295
12.2.4 数组的连接295
12.2.5 复制数组296
12.3 使用 matplotlib 296
12.3.1 使用plot()来绘制图表297
12.3.2 控制plot()的绘制299
12.3.3 加入字符300
12.4 将日本的人口可视化300
12.4.1 读取人口数据301
12.4.2 绘制人口金字塔303
12.4.3 将图表绘制在交互式中304
12.4.4 推算未来人口数量306
12.5 Python与机器学习 310
12.5.1 用机器学习进行数值的预测311
12.5.2 机器学习的算法315
12.5.3 由姓名来判定性别316
12.5.4 机器学习、数据科学与Python 320
12.5.5 深度学习的登场和未来321
第13章 Python 2 323
13.1 Python 3与Python 2的不同点323
13.1.1 在Python 3中被削减掉的功能 324
13.1.2 在Python 2.7中可以使用的Python 3功能 324
13.1.3 在Python 3中改变了的功能 325
13.1.4 模块的再配置、名称变更 329
13.2 从Python 2到Python 3的迁移 330
13.3 结束语331