互联网
类型
可以朗读
语音朗读
558千字
字数
2021-05-01
发行日期
展开全部
主编推荐语
基于Python3.8,Python编程进阶。
内容简介
本书将帮助读者系统掌握编写高效、优雅的Python代码的方法,快速成长为一位高水平的Python开发工程师。
作者是Python编程领域的资深开发工程师,有多年的Python开发经验。本书得到了行业里15位技术专家的高度评价。
为了帮助读者编写出高效的Python代码,本书不仅从源代码的角度系统地讲解了Python的语法,让读者能知其然并知其所以然,而且结合具体的应用需求,对并发编程、性能优化、测试与调试、异常处理、内存管理等Python开发中的高级知识进行了详细的讲解。
为了指导读者编写出更优雅的Python代码,本书针对具体问题给出了大量的实例代码并给出了编码风格上的方法和建议。
如果你是没有Python编程经验的新人,将通过本书系统掌握Python语法及其背后的原理,并从一开始就养成良好的编码习惯;如果你是有一定Python编程经验的老手,将通过本书掌握各种Python编程中的高级知识,同时领略到优雅的编码风格和技巧。
目录
- 版权信息
- 推荐语
- 推荐序一
- 推荐序二
- 前言
- 第0章 Python总览
- 0.1 Python总体架构
- 0.2 Python源码组织
- 0.3 Python对象初探
- 0.3.1 Python内的对象
- 0.3.2 对象的分类
- 0.3.3 对象机制的基石——PyObject
- 0.3.4 定长对象和变长对象
- 0.3.5 类型对象
- 0.3.6 类型的类型
- 0.3.7 对象的创建
- 0.3.8 对象的行为
- 0.3.9 对象的多态性
- 0.3.10 引用计数
- 0.4 本章小结
- 第1章 数字对象
- 1.1 整数对象
- 1.1.1 PyLongObject对象
- 1.1.2 小整数对象
- 1.1.3 大整数对象
- 1.2 数字格式化输出
- 1.3 进制转换
- 1.4 数字运算
- 1.4.1 四舍五入运算
- 1.4.2 浮点数运算
- 1.4.3 复数运算
- 1.4.4 分数运算
- 1.4.5 大型数组运算
- 1.4.6 矩阵与线性代数运算
- 1.5 字节到大整数的打包与解包
- 1.6 无穷大与NaN
- 1.7 随机数
- 1.8 本章小结
- 第2章 字符串
- 2.1 字符串对象解析
- 2.1.1 字符串对象的intern机制
- 2.1.2 字符串操作效率
- 2.2 字符串操作
- 2.2.1 字符串分割
- 2.2.2 删除不需要的字符
- 2.2.3 字符串清理
- 2.2.4 字符串对齐
- 2.2.5 字符串拼接
- 2.2.6 字符串插入
- 2.2.7 字符串格式化
- 2.2.8 处理HTML和XML文本
- 2.3 字符串匹配
- 2.3.1 字符串开头或结尾匹配
- 2.3.2 用Shell通配符匹配字符串
- 2.3.3 字符串匹配和搜索
- 2.3.4 最短匹配
- 2.3.5 多行匹配
- 2.4 字符串搜索
- 2.4.1 字符串搜索替换
- 2.4.2 字符串忽略大小写的搜索替换
- 2.5 将Unicode文本标准化
- 2.6 在正则表达式中使用Unicode字符
- 2.7 令牌解析
- 2.8 简单的递归下降分析器实现
- 2.9 字节字符串操作
- 2.10 本章小结
- 第3章 数据结构
- 3.1 序列
- 3.1.1 序列对象解析
- 3.1.2 序列解压
- 3.1.3 序列去重并保持顺序
- 3.1.4 序列元素统计
- 3.1.5 过滤序列元素
- 3.1.6 序列元素名称映射
- 3.1.7 转换并计算数据
- 3.2 字典
- 3.2.1 字典对象解析
- 3.2.2 字典映射
- 3.2.3 字典排序
- 3.2.4 字典运算
- 3.2.5 字典查找
- 3.2.6 通过关键字排序字典
- 3.2.7 字典提取
- 3.2.8 字典合并
- 3.3 可迭代对象操作
- 3.3.1 可迭代对象解压
- 3.3.2 保留最后N个元素
- 3.3.3 记录分组
- 3.4 查找最大或最小的N个元素
- 3.5 实现一个优先级队列
- 3.6 命名切片
- 3.7 排序不支持原生比较的对象
- 3.8 本章小结
- 第4章 迭代器与生成器
- 4.1 迭代操作
- 4.1.1 手动遍历迭代器
- 4.1.2 代理迭代
- 4.1.3 实现迭代协议
- 4.1.4 反向迭代
- 4.1.5 迭代器切片
- 4.1.6 跳过可迭代对象的开始部分
- 4.1.7 排列组合的迭代
- 4.1.8 序列上索引值迭代
- 4.1.9 多个序列迭代
- 4.1.10 集合元素的迭代
- 4.1.11 顺序迭代合并后的排序迭代对象
- 4.1.12 迭代器代替while无限循环
- 4.2 使用生成器创建新的迭代模式
- 4.3 带有外部状态的生成器函数
- 4.4 创建数据处理管道
- 4.5 展开嵌套的序列
- 4.6 本章小结
- 第5章 文件与I/O
- 5.1 读/写操作
- 5.1.1 读/写文本数据
- 5.1.2 读/写字节数据
- 5.1.3 读/写压缩文件
- 5.2 文件操作
- 5.2.1 文件的写入
- 5.2.2 操作文件路径名
- 5.2.3 文件检查
- 5.2.4 文件列表获取
- 5.2.5 忽略文件名编码
- 5.2.6 打印不合法的文件名
- 5.2.7 文件编码变更
- 5.2.8 在文本文件中写入字节
- 5.2.9 文件描述符包装
- 5.2.10 创建临时文件和文件夹
- 5.2.11 文件迭代
- 5.2.12 二进制文件映射
- 5.3 使用分隔符或行终止符打印
- 5.4 字符串的I/O操作
- 5.5 可变缓冲区中二进制数据的读取
- 5.6 串行端口的数据通信
- 5.7 对象序列化
- 5.8 本章小结
- 第6章 数据编码及处理
- 6.1 数据读/写
- 6.1.1 CSV数据读/写
- 6.1.2 JSON数据读/写
- 6.1.3 二进制数组数据读/写
- 6.1.4 嵌套和可变长二进制数据读取
- 6.2 XML数据解析
- 6.2.1 简单XML数据解析
- 6.2.2 解析XML文档
- 6.2.3 修改XML
- 6.3 字典转换为XML
- 6.4 与关系型数据库的交互
- 6.5 编码/解码
- 6.5.1 十六进制数编码和解码
- 6.5.2 编码/解码Base64数据
- 6.6 本章小结
- 第7章 函数
- 7.1 函数定义
- 7.1.1 有默认参数的函数定义
- 7.1.2 匿名或内联函数定义
- 7.2 函数的参数
- 7.2.1 接收任意数量参数
- 7.2.2 接收关键字参数
- 7.2.3 为参数增加元信息
- 7.2.4 减少参数个数
- 7.3 返回多个值的函数
- 7.4 变量处理
- 7.4.1 匿名函数捕获变量值
- 7.4.2 访问闭包中定义的变量
- 7.5 类转换为函数
- 7.6 回调函数
- 7.6.1 有额外状态信息的回调函数
- 7.6.2 内联回调函数
- 7.7 本章小结
- 第8章 类与对象
- 8.1 对象处理
- 8.1.1 对象显示
- 8.1.2 有效创建大量对象
- 8.1.3 由字符串调用对象
- 8.2 自定义格式化字符串
- 8.3 上下文管理协议
- 8.4 类的处理
- 8.4.1 封装属性名
- 8.4.2 调用父类方法
- 8.4.3 扩展property
- 8.4.4 创建新的类或实例属性
- 8.4.5 定义多个构造器
- 8.4.6 类中的比较操作
- 8.5 属性处理
- 8.5.1 可管理属性创建
- 8.5.2 延迟计算属性
- 8.5.3 属性的代理访问
- 8.6 数据结构的初始化
- 8.7 接口或者抽象基类定义
- 8.8 数据模型的类型约束
- 8.9 自定义容器
- 8.10 不调用init方法的实例创建
- 8.11 利用Mixin扩展类功能
- 8.12 状态对象实现
- 8.13 设计模式处理
- 8.13.1 访问者模式
- 8.13.2 不用递归实现访问者模式
- 8.14 数据结构的内存管理
- 8.15 创建缓存
- 8.16 本章小结
- 第9章 元编程
- 9.1 装饰器
- 9.1.1 函数添加装饰器
- 9.1.2 装饰器中保留函数元信息
- 9.1.3 解除装饰器
- 9.1.4 带参数的装饰器
- 9.1.5 装饰器自定义属性
- 9.1.6 带可选参数的装饰器
- 9.1.7 函数的类型检查
- 9.1.8 类中定义装饰器
- 9.1.9 装饰器定义为类
- 9.1.10 类和静态方法的装饰器
- 9.1.11 给函数增加参数
- 9.1.12 扩充类的功能
- 9.2 元类
- 9.2.1 控制实例创建
- 9.2.2 元类定义可选参数
- 9.3 类的属性定义顺序
- 9.4 强制参数签名
- 9.5 强制使用编程规约
- 9.6 以编程方式定义类
- 9.7 初始化类的成员
- 9.8 利用注解实现方法重载
- 9.9 避免重复的属性方法
- 9.10 定义上下文管理器
- 9.11 局部变量域中执行代码
- 9.12 Python源码解析
- 9.13 Python字节码拆解
- 9.14 本章小结
- 第10章 模块与包
- 10.1 模块处理
- 10.1.1 模块层级
- 10.1.2 控制模块的导入
- 10.1.3 重新加载模块
- 10.1.4 通过字符串名导入模块
- 10.1.5 远程加载模块
- 10.1.6 导入模块的同时修改模块
- 10.2 读取包中的数据文件
- 10.3 将文件夹加入sys.path
- 10.4 安装私有的包
- 10.5 创建新的Python环境
- 10.6 分发包
- 10.7 本章小结
- 第11章 网络编程
- 11.1 与HTTP服务交互
- 11.2 创建服务器
- 11.2.1 TCP服务器
- 11.2.2 UDP服务器
- 11.3 通过CIDR地址生成对应的IP地址集
- 11.4 REST接口创建
- 11.5 远程调用
- 11.5.1 远程方法调用
- 11.5.2 通过XML-RPC远程调用
- 11.6 不同Python解释器之间的交互
- 11.7 客户端认证
- 11.8 Socket文件描述符传递
- 11.9 事件驱动的I/O
- 11.10 大型数组发送与接收
- 11.11 本章小结
- 第12章 并发编程
- 12.1 线程处理
- 12.1.1 线程的启动与停止
- 12.1.2 线程判断
- 12.1.3 线程间通信
- 12.1.4 线程加锁
- 12.1.5 防止死锁
- 12.1.6 线程状态信息保存
- 12.1.7 创建线程池
- 12.2 并行编程
- 12.3 全局锁问题
- 12.4 Actor任务定义
- 12.5 消息发布/订阅模型
- 12.6 生成器代替线程
- 12.7 线程队列轮询
- 12.8 守护进程
- 12.9 本章小结
- 第13章 脚本编程与系统管理
- 13.1 脚本接收
- 13.2 终止程序
- 13.3 解析命令行选项
- 13.4 弹出密码输入提示
- 13.5 执行外部命令
- 13.6 文件操作
- 13.6.1 文件和目录的复制或移动
- 13.6.2 创建和解压归档文件
- 13.6.3 文件查找
- 13.6.4 配置文件读取
- 13.7 添加日志
- 13.7.1 脚本增加日志功能
- 13.7.2 函数库增加日志功能
- 13.8 实现计时器
- 13.9 内存和CPU监测
- 13.10 启动Web浏览器
- 13.11 本章小结
- 第14章 测试、调试和异常
- 14.1 测试
- 14.1.1 stdout输出
- 14.1.2 对象打补丁
- 14.1.3 测试异常
- 14.1.4 记录测试结果
- 14.1.5 性能测试
- 14.1.6 测试失败处理
- 14.2 异常处理
- 14.2.1 捕获所有异常
- 14.2.2 处理多个异常
- 14.2.3 自定义异常
- 14.2.4 抛出新的异常
- 14.2.5 异常重新抛出
- 14.2.6 警告信息
- 14.3 程序调试
- 14.4 加速程序运行
- 14.5 实战——自然语言处理
- 14.6 本章小结
- 第15章 Python的内存管理机制
- 15.1 Python内存架构
- 15.2 小块空间的内存池
- 15.2.1 block
- 15.2.2 pool
- 15.2.3 arena
- 15.2.4 内存池
- 15.3 循环引用的垃圾收集
- 15.3.1 引用计数与垃圾收集
- 15.3.2 三色标记模型
- 15.4 Python垃圾收集
- 15.4.1 可收集对象链表
- 15.4.2 分代垃圾收集
- 15.4.3 Python中的标记——清除方法
- 15.5 实战——内存监控
- 15.6 本章小结
- 第16章 性能优化与实践
- 16.1 优化的规则
- 16.1.1 先使程序可以正常工作
- 16.1.2 从用户的角度进行
- 16.1.3 保证代码易读
- 16.2 优化策略
- 16.2.1 寻找其他原因
- 16.2.2 度量硬件
- 16.2.3 编写速度测试代码
- 16.3 查找瓶颈
- 16.3.1 剖析CPU使用情况
- 16.3.2 剖析内存使用情况
- 16.4 降低复杂度
- 16.4.1 测量回路复杂度
- 16.4.2 测量大O记号
- 16.4.3 简化
- 16.5 实战——爬虫程序的性能优化
- 16.6 本章小结
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。