4.7 用户推荐指数
计算机
类型
9.2
豆瓣评分
可以朗读
语音朗读
312千字
字数
2022-02-01
发行日期
展开全部
主编推荐语
本书精选14个项目案例,60多个编程技巧与建议,助你实现Python编程从入门到工匠的跃迁。
内容简介
本书从工程实践角度出发,通过剖析核心知识、展示典型案例与总结实用技巧,帮助大家系统进阶Python,写好工程代码,做好实践项目。
本书共计13章,分为五大部分:变量与基础类型、语法结构、函数与装饰器、面向对象编程、总结与延伸,涵盖Python编程的方方面面。本书的写作方式别具一格,核心知识点都会通过三大板块来阐述:基础知识、案例故事、编程建议。
其中基础知识帮助大家快速回顾Python基础;案例故事由作者经历的编程项目与案例改编而来,兼具实战性与趣味性;编程建议以大家喜闻乐见的条目式知识点呈现,短小精悍,可直接应用于自己的编程实践中。
目录
- 版权信息
- 本书赞誉
- 前言
- 第1章 变量与注释
- 1.1 基础知识
- 1.1.1 变量常见用法
- 1.1.2 给变量注明类型
- 1.1.3 变量命名原则
- 1.1.4 注释基础知识
- 1.2 案例故事
- 奇怪的冒泡排序算法
- 1.3 编程建议
- 1.3.1 保持变量的一致性
- 1.3.2 变量定义尽量靠近使用
- 1.3.3 定义临时变量提升可读性
- 1.3.4 同一作用域内不要有太多变量
- 1.3.5 能不定义变量就别定义
- 1.3.6 不要使用 locals()
- 1.3.7 空行也是一种“注释”
- 1.3.8 先写注释,后写代码
- 1.4 总结
- 第2章 数值与字符串
- 2.1 基础知识
- 2.1.1 数值基础
- 2.1.2 布尔值其实也是数字
- 2.1.3 字符串常用操作
- 2.1.4 不常用但特别好用的字符串方法
- 2.1.5 字符串与字节串
- 2.2 案例故事
- 2.2.1 代码里的“密码”
- 2.2.2 别轻易成为 SQL 语句“大师”
- 2.3 编程建议
- 2.3.1 不必预计算字面量表达式
- 2.3.2 使用特殊数字:“无穷大”
- 2.3.3 改善超长字符串的可读性
- 2.3.4 别忘了以 r 开头的字符串内置方法
- 2.3.5 不要害怕字符串拼接
- 2.4 总结
- 第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.1.8 了解对象的可哈希性
- 3.1.9 深拷贝与浅拷贝
- 3.2 案例故事
- 分析网站访问日志
- 3.3 编程建议
- 3.3.1 用按需返回替代容器
- 3.3.2 了解容器的底层实现
- 3.3.3 掌握如何快速合并字典
- 3.3.4 使用有序字典去重
- 3.3.5 别在遍历列表时同步修改
- 3.3.6 编写推导式的两个“不要”
- 3.3.7 让函数返回 NamedTuple
- 3.4 总结
- 第4章 条件分支控制流
- 4.1 基础知识
- 4.1.1 分支惯用写法
- 4.1.2 修改对象的布尔值
- 4.1.3 与 None 比较时使用 is 运算符
- 4.2 案例故事
- 消失的分支
- 4.3 编程建议
- 4.3.1 尽量避免多层分支嵌套
- 4.3.2 别写太复杂的条件表达式
- 4.3.3 尽量降低分支内代码的相似性
- 4.3.4 使用“德摩根定律”
- 4.3.5 使用 all()/any() 函数构建条件表达式
- 4.3.6 留意 and 和 or 的运算优先级
- 4.3.7 避开 or 运算符的陷阱
- 4.4 总结
- 第5章 异常与错误处理
- 5.1 基础知识
- 5.1.1 优先使用异常捕获
- 5.1.2 try 语句常用知识
- 5.1.3 抛出异常,而不是返回错误
- 5.1.4 使用上下文管理器
- 5.2 案例故事
- 5.2.1 提前崩溃也挺好
- 5.2.2 异常与抽象一致性
- 5.3 编程建议
- 5.3.1 不要随意忽略异常
- 5.3.2 不要手动做数据校验
- 5.3.3 抛出可区分的异常
- 5.3.4 不要使用 assert 来检查参数合法性
- 5.3.5 无须处理是最好的错误处理
- 5.4 总结
- 第6章 循环与可迭代对象
- 6.1 基础知识
- 6.1.1 迭代器与可迭代对象
- 6.1.2 修饰可迭代对象优化循环
- 6.1.3 使用 itertools 模块优化循环
- 6.1.4 循环语句的 else 关键字
- 6.2 案例故事
- 数字统计任务
- 6.3 编程建议
- 6.3.1 中断嵌套循环的正确方式
- 6.3.2 巧用 next() 函数
- 6.3.3 当心已被耗尽的迭代器
- 6.4 总结
- 第7章 函数
- 7.1 基础知识
- 7.1.1 函数参数的常用技巧
- 7.1.2 函数返回的常见模式
- 7.1.3 常用函数模块:functools
- 7.2 案例故事
- 函数与状态
- 7.3 编程建议
- 7.3.1 别写太复杂的函数
- 7.3.2 一个函数只包含一层抽象
- 7.3.3 优先使用列表推导式
- 7.3.4 你没有那么需要 lambda
- 7.3.5 了解递归的局限性
- 7.4 总结
- 第8章 装饰器
- 8.1 基础知识
- 8.1.1 装饰器基础
- 8.1.2 使用 functools.wraps() 修饰包装函数
- 8.1.3 实现可选参数装饰器
- 8.1.4 用类来实现装饰器(函数替换)
- 8.1.5 用类来实现装饰器(实例替换)
- 8.1.6 使用 wrapt 模块助力装饰器编写
- 8.2 编程建议
- 8.2.1 了解装饰器的本质优势
- 8.2.2 使用类装饰器替代元类
- 8.2.3 别弄混装饰器和装饰器模式
- 8.2.4 浅装饰器,深实现
- 8.3 总结
- 第9章 面向对象编程
- 9.1 基础知识
- 9.1.1 类常用知识
- 9.1.2 内置类方法装饰器
- 9.1.3 鸭子类型及其局限性
- 9.1.4 抽象类
- 9.1.5 多重继承与 MRO
- 9.1.6 其他知识
- 9.2 案例故事
- 继承是把双刃剑
- 9.3 编程建议
- 9.3.1 使用 __init_subclass__ 替代元类
- 9.3.2 在分支中寻找多态的应用时机
- 9.3.3 有序组织你的类方法
- 9.3.4 函数搭配,干活不累
- 9.4 总结
- 第10章 面向对象设计原则(上)
- 10.1 类型注解基础
- 10.2 SRP:单一职责原则
- 10.2.1 案例:一个简单的 Hacker News 爬虫
- 10.2.2 违反 SRP 的坏处
- 10.2.3 大类拆小类
- 10.3 OCP:开放 - 关闭原则
- 10.3.1 接受 OCP 的考验
- 10.3.2 通过继承改造代码
- 10.3.3 使用组合与依赖注入
- 10.3.4 使用数据驱动
- 10.4 总结
- 第11章 面向对象设计原则(下)
- 11.1 LSP:里式替换原则
- 11.1.1 子类随意抛出异常
- 11.1.2 子类随意调整方法参数与返回值
- 11.1.3 基于隐式合约违反 LSP
- 11.1.4 LSP 小结
- 11.2 DIP:依赖倒置原则
- 11.2.1 案例:按来源统计 Hacker News 条目数量
- 11.2.2 为脚本编写单元测试
- 11.2.3 实现 DIP
- 11.2.4 倒置后的单元测试
- 11.2.5 DIP 小结
- 11.3 ISP:接口隔离原则
- 11.3.1 案例:处理页面归档需求
- 11.3.2 修改实体类
- 11.3.3 违反 ISP
- 11.3.4 分拆接口
- 11.3.5 其他违反 ISP 的场景
- 11.4 总结
- 第12章 数据模型与描述符
- 12.1 基础知识
- 12.1.1 字符串魔法方法
- 12.1.2 比较运算符重载
- 12.1.3 描述符
- 12.2 案例故事
- 处理旅游数据的三种方案
- 12.3 编程建议
- 12.3.1 认识 __hash__ 的危险性
- 12.3.2 数据模型不是“躺赢”之道
- 12.3.3 不要依赖 __del__ 方法
- 12.4 总结
- 第13章 开发大型项目
- 13.1 常用工具介绍
- 13.1.1 flake8
- 13.1.2 isort
- 13.1.3 black
- 13.1.4 pre-commit
- 13.1.5 mypy
- 13.2 单元测试简介
- 13.2.1 unittest
- 13.2.2 pytest
- 13.3 有关单元测试的建议
- 13.3.1 写单元测试不是浪费时间
- 13.3.2 不要总想着“补”测试
- 13.3.3 难测试的代码就是烂代码
- 13.3.4 像应用代码一样对待测试代码
- 13.3.5 避免教条主义
- 13.4 总结
- 结语
- 作者简介
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。