给所有人的Python 第4版作者: [日]柴田淳 出版时间:2019年版内容简介 本书由浅入深地从软件安装环境到基础语法与应用来讲解面向对象脚本语言Python。本书共13章,主要讲解Python的语法以及Python的相关应用,最后还比较了Python 2与Python 3之间的差别,以供读者参考。 本书既可作为Python开发入门者的自学用书,也可作为高等院校相关专业的教学参考书。目录第1章 程序设计语言Python 11.1 Python的魅力 11.1.1 Python很容易记忆 21.1.2 Python很容易使用 31.1.3 Python有广阔的前景 41.2 Python(Anaconda)的下载和安装… 61.2.1 什么是Anaconda 61.2.2 必要的学习环境71.2.3 在 Windows系统中安装Anaconda 81.2.4 在macOS(OS X)系统中安装Anaconda 91.2.5 在Linux系统中安装 Anaconda 101.2.6 已经安装Python的情况 111.2.7 安装本家版Python 111.3 交互式脚本(对话型脚本) 131.3.1 在 Windows系统中启动交互式脚本 131.3.2 在 macOS、Linux系统中启动交互式脚本141.3.3 输入Python代码151.3.4 关闭交互式脚本201.4 在文件中编写Python程序 201.4.1 使用Editor(编辑器)编写程序211.4.2 保存Python程序 211.4.3 在 Windows系统中运行Python的脚本文件221.4.4 在 macOS、Linux系统中执行Python的脚本文件 231.4.5 推荐的编辑器和选择方法241.5 使用Jupyter Notebook 261.5.1 在 Windows、macOS系统中启动内核 281.5.2 在Linux系统中启动内核 281.5.3 使用主面板291.5.4 制作Notebook291.5.5 使用Notebook运行程序 301.5.6 保存Notebook 321.5.7 结束Notebook 331.5.8 使用Jupyter Notebook的tmpnb 331.5.9 示例代码的运行方法34第2章 用Python开始程序设计362.1 使用数值362.1.1 使用数值的四则运算372.1.2 四则运算和优先顺序382.2 使用变量382.2.1 定义变量382.2.2 使用变量进行计算392.3 使用字符串412.3.1 定义字符串412.3.2 字符串的连接422.3.3 复合运算符432.3.4 统一类型的Python风格 442.3.5 字符串与数值的转换(类型转换) 452.4 使用列表472.4.1 定义列表472.4.2 指定索引取出元素482.4.3 列表的连接502.4.4 元素的置换和删除502.4.5 使用切片取出多个元素522.4.6 列表的列表———二维数组532.4.7 列表的合计、最大值和最小值552.4.8 查看列表长度562.5 用for语句进行循环操作 572.6 用if语句进行条件分支 612.6.1 比较数值632.6.2 比较字符串632.6.3 检索字符串642.6.4 比较列表642.6.5 检索列表元素652.6.6 使用else语句 652.7 使用函数692.7.1 什么是函数692.7.2 调用函数702.7.3 函数的参数702.7.4 函数的返回值(1) 712.7.5 定义函数722.7.6 定义参数742.7.7 函数的返回值(2) 752.7.8 本地变量762.8 使用模块792.8.1 导入模块802.8.2 import语句的as 812.8.3 使用了from的导入 812.8.4 模块的查找方法82第3章 掌握Python的基础833.1 使用字典833.1.1 什么是字典833.1.2 使用键取出元素843.1.3 使用键替换元素853.1.4 添加新的键与值863.1.5 使用键删除元素873.1.6 确认键的存在883.1.7 使用键的循环893.2 使用set(集合) 903.2.1 定义set 913.2.2 求set的并集 913.2.3 求set的差集 923.2.4 求set的交集 923.2.5 求set的异或 933.2.6 set与列表 943.2.7 set与比较 943.3 使用元组953.4 if语句的应用993.4.1 比较运算符993.4.2 比较运算符与True和False 993.4.3 关于比较的备忘录 1003.4.4 复杂的比较———逻辑运算 1003.5 循环的应用 1013.5.1 使用while语句制作循环 1013.5.2 使用了break语句和continue语句的循环控制 1033.5.3 循环的else 1053.6 函数的应用 1053.6.1 对函数定义默认参数 1063.6.2 参数的关键字指定 1073.6.3 函数和本地变量 108第4章 熟练使用内置类型1114.1 作为对象的内置类型概述 1114.1.1 什么是方法 1114.1.2 作为对象的内置类型 1134.1.3 内置的数据类型一览 1144.1.4 数据类型的分类 1164.1.5 序 列 1164.1.6 可更改和不可更改 1174.1.7 set类型和字典类型1174.2 操作数值类型 1184.2.1 十六进制的表示方法 1184.2.2 二进制的表示方法1194.2.3 八进制的表示方法 1204.2.4 位运算 1214.3 熟练使用字符串类型 1214.3.1 字符串的替换和删除 1214.3.2 split()方法和join()方法 1224.3.3 转义序列 1244.3.4 raw字符串 1264.3.5 字符串中可以使用的方法 1264.3.6 字符串的格式化 1284.4 熟练掌握列表类型和元组类型 1324.4.1 给列表排序 1324.4.2 自定义排列顺序 1334.4.3 解包代入 1344.4.4 切片的步长数 1354.4.5 使用了切片元素的代入和删除1354.4.6 列表中可以使用的方法 1364.5 熟练使用set类型 1374.6 熟练掌握字典类型 1384.6.1 通过序列等制作字典 1384.6.2 将两个字典进行组合 1394.6.3 巧妙处理字典的键 1394.6.4 灵活运用字典中的方法 1404.7 if语句和内置类型1424.8 for语句和内置类型1424.8.1 熟练使用range()函数 1424.8.2 序列和循环计数器1434.8.3 使用两个序列的循环 1444.9 函数和内置类型 1454.9.1 返回值和解包代入 1454.9.2 在函数中接收参数列表 1464.9.3 在函数中接收关键字参数 1474.10 Python的字符串和日语 1474.10.1 有关字符编码的基础知识1474.10.2 Python和 Unicode 1504.10.3 字节类型1504.10.4 字符串向字节类型转换1524.10.5 字节类型向字符串类型转换1534.10.6 脚本文件的编码指定1534.10.7 编码的判断1544.10.8 编码和乱码1544.10.9 多字节字符和字符的分界1564.11 Python的文件处理 1564.11.1 文件和文件对象1584.11.2 从文件中读取1604.11.3 写入文件1624.11.4 处理二进制文件1624.11.5 文件名称的处理163第5章 Python与函数式程序设计 1655.1 什么是函数式程序设计 1655.1.1 Python的语句和表达式 1675.1.2 Lambda表达式 1675.2 解析式 1685.2.1 列表解析式 1695.2.2 列表解析式的详细介绍 1695.2.3 在列表解析式中使用if 1705.2.4 字典解析式 1715.2.5 set解析式1725.3 使用迭代 1725.3.1 什么是迭代 1725.3.2 迭代和延迟评价 1735.4 使用生成器 1755.4.1 定义生成器函数 1765.4.2 生成器表达式 1765.5 高阶函数和装饰器1775.5.1 高阶函数 1775.5.2 装饰器 179第6章 类与面向对象开发1816.1 在Python中使用类1816.1.1 对象和类 1816.1.2 由类制作对象(实例) 1826.1.3 使用实例 1836.1.4 对象和实例1836.2 制作类1846.2.1 定义类 1856.2.2 实例的属性 1856.2.3 方法的定义与初始化方法“__init__()” 1876.2.4 方法与第一参数“self” 1886.2.5 属性的隐蔽性 192第7章 类的继承与高级面向对象功能1947.1 继承类 1947.1.1 指定超类 1957.1.2 方法的重写 1957.1.3 初始化方法的重写 1967.1.4 得到使用super()的超类 1977.1.5 插 槽 1987.1.6 特 征 1997.2 使用特殊方法 2007.3 继承内置类型 206第8章 模 块2098.1 创建模块文件夹 2098.1.1 导入模块时的操作 2108.1.2 仅在执行文件时执行的块 2118.1.3 类与模块 2128.2 模块的层次(包) 2138.2.1 包的本质 2138.2.2 创建包 2148.3 使用模块时的注意事项 2148.3.1 使用from语句导入的弊端 2148.3.2 模块的搜索顺序 2148.4 使用第三方模块 2158.4.1 模块的搜寻方法 2158.4.2 使用pip安装模块 2168.4.3 使用conda安装模块 2178.4.4 模块的种类 2178.4.5 手动安装模块 2188.4.6 模块的设置场所和Python的版本 218第9章 作用域与对象2219.1 命名空间、作用域2219.1.1 作用域的规则 2229.1.2 类、实例的作用域2249.2 纯粹面向对象语言Python 2259.2.1 对象与属性 2259.2.2 魔法函数dir()2269.2.3 作为属性的方法 2279.2.4 全部都是对象 2289.2.5 对象与类型2289.2.6 对象与属性 2309.2.7 类、模块与属性2319.2.8 对象和变量 2319.2.9 对象与命名空间 232第10章 异常处理 23410.1 Python的异常处理 23410.1.1 异常的发生23410.1.2 捕获异常23510.1.3 with语句 23710.1.4 异常与追溯23710.1.5 引发(raise)异常23810.1.6 显示追溯23810.2 常见错误或异常与对策23910.2.1 读取程序时发生的错误(SyntaxError) 24010.2.2 程序执行中发生的错误(Exception) 240第11章 使用标准库 24311.1 标准库的导入24311.2 数据结构24411.2.1 保持添加时顺序的“collections.OrderedDict” 24411.2.2 带有默认值的字典“collections.defaultdict” 24511.2.3 协助列表sort的“bisect” 24611.3 处理日期数据的“datetime、calendar” 24711.3.1 日期与时刻和字符串24911.3.2 日期与时刻的运算和比较25011.3.3 使用datetime.date类的方法 25111.3.4 使用datetime.datetime类的方法 25211.3.5 使用calendar模块 25211.4 正则表达式“re” 25411.4.1 re模块 25411.4.2 Python的正则表达式 25511.4.3 正则表达式的pattern字符串 25511.4.4 使用正则表达式对象25711.4.5 将模式传递给参数,进行正则表达式的处理 25911.4.6 使用匹配对象26011.4.7 正则表达式的示例26111.5 获取操作系统参数的“sys” 26111.5.1 获取命令行的参数26111.5.2 程序的结束26211.5.3 其他函数与变量26211.6 获得及操作文件、进程等依赖 OS信息的“OS” 26211.6.1 获取、操作与进程相关的信息 26211.6.2 文件与目录的操作26311.6.3 进程管理26511.6.4 在交换平台使用了路径的操作26611.7 使用数学函数“math”“random” 26711.7.1 math———数学函数模块 26711.7.2 random———生成随机数 26911.8 获取因特网上数据的“urllib” 27011.8.1 从 Web或FTP中获取文件27111.8.2 使用request.urlretrieve()函数的示例代码 27111.8.3 从 Web或FTP中读取数据27211.8.4 在urlopen()返回的对象中可以使用的方法 27211.8.5 BASIC认证 27311.8.6 用POST方式传输数据 27411.8.7 其他函数27511.9 创建字符串库虚拟文件的“io.StringIO” 27611.10 CSV(逗号分隔值)文件的操作 27711.11 对象持久化与序列化“shelve”“pickle” 27811.11.1 将字典持久化的“shelve” 27911.11.2 执行对象持久化与序列化的“pickle” 28011.12 处理JSON数据的“json” 28211.12.1 将JSON转换为Python的数据类型28311.12.2 Python的数据类型转换为JSON 28311.12.3 json的使用示例 284第12章 Python与数据科学 28512.1 NumPy与 matplotlib 28512.1.1 所谓的 NumPy与 matplotlib 28512.1.2 使用NumPy 28712.1.3 使用 matplotlib 29012.2 使用NumPy 29112.2.1 生成NumPy的array 29112.2.2 使用数组的运算29312.2.3 访问元素29512.2.4 数组的连接29512.2.5 复制数组29612.3 使用 matplotlib 29612.3.1 使用plot()来绘制图表29712.3.2 控制plot()的绘制29912.3.3 加入字符30012.4 将日本的人口可视化30012.4.1 读取人口数据30112.4.2 绘制人口金字塔30312.4.3 将图表绘制在交互式中30412.4.4 推算未来人口数量30612.5 Python与机器学习 31012.5.1 用机器学习进行数值的预测31112.5.2 机器学习的算法31512.5.3 由姓名来判定性别31612.5.4 机器学习、数据科学与Python 32012.5.5 深度学习的登场和未来321第13章 Python 2 32313.1 Python 3与Python 2的不同点32313.1.1 在Python 3中被削减掉的功能 32413.1.2 在Python 2.7中可以使用的Python 3功能 32413.1.3 在Python 3中改变了的功能 32513.1.4 模块的再配置、名称变更 32913.2 从Python 2到Python 3的迁移 33013.3 结束语331 上一篇: 程序员进阶之路:从码农到中层管理者 [韩]郑暎勋 2019年版 下一篇: 计算机科学丛书:统计推荐系统 [美]Deepak K.Agarwal 2019年版