更新时间:2022-08-01 11:41:21
封面
版权信息
献词
前言
目标读者
关于本书
你的编程之旅
更多信息
致谢
第一部分 起步
第1章 处理错误和寻求帮助
1.1 如何理解Python错误信息
1.2 借助linter避免错误
1.3 如何寻求编程帮助
1.4 样例:如何寻求帮助
1.5 小结
第2章 环境设置和命令行
2.1 文件系统
2.2 程序和进程
2.3 命令行
2.4 环境变量和PATH
2.5 不借助命令行运行Python程序
2.6 小结
第二部分 最佳实践、工具和技巧
第3章 使用Black进行代码格式化
3.1 让程序员招人烦的错误做法
3.2 风格指南和PEP 8
3.3 水平间距
3.4 垂直间距
3.5 Black:毫不妥协的代码格式化工具
3.6 小结
第4章 选择易懂的名称
4.1 命名风格
4.2 PEP 8的命名风格
4.3 适当的名称长度
4.4 起易于搜索的名称
4.5 避免笑话、双关语和需要文化背景才能理解的词汇
4.6 不要覆盖内置名称
4.7 史上最差的变量名
4.8 小结
第5章 揪出代码的坏味道
5.1 重复的代码
5.2 魔数
5.3 注释掉的代码和死代码
5.4 打印调试
5.5 带有数字后缀的变量
5.6 本该是函数或者模块的类
5.7 嵌套列表解析式
5.8 空的except块和糟糕的错误信息
5.9 代码坏味道的谬误
5.10 小结
第6章 编写Python风格的代码
6.1 Python之禅
6.2 学着喜欢强制缩进
6.3 使用timeit模块衡量性能
6.4 常被误用的语法
6.5 格式化字符串
6.6 制作列表的浅副本
6.7 以Python风格使用字典
6.8 条件表达式:Python“丑陋”的三元运算符
6.9 处理变量的值
6.10 小结
第7章 编程术语
7.1 定义
7.2 经常被混淆的术语
7.3 小结
第8章 常见的Python陷阱
8.1 循环列表的同时不要增删其中的元素
8.2 复制可变值时务必使用copy.copy()和copy.deepcopy()
8.3 不要用可变值作为默认参数
8.4 不要通过字符串连接创建字符串
8.5 不要指望sort()按照字母顺序排序
8.6 不要假设浮点数是完全准确的
8.7 不要使用链式!=运算符
8.8 不要忘记在仅有一项的元组中添加逗号
8.9 小结
第9章 Python的奇特难懂之处
9.1 为什么256是256,而257不是257
9.2 字符串驻留
9.3 假的Python增量运算符和减量运算符
9.4 传递空列表给all()
9.5 布尔值是整数值
9.6 链式使用多种运算符
9.7 Python的反重力特性
9.8 小结
第10章 编写高效的函数
10.1 函数名
10.2 函数大小的权衡
10.3 函数的形参和实参
10.4 函数式编程
10.5 返回值的数据类型应该不变
10.6 抛出异常和返回错误码
10.7 小结
第11章 注释、文档字符串和类型提示
11.1 注释
11.2 文档字符串
11.3 类型提示
11.4 小结
第12章 通过Git管理项目
12.1 Git提交和仓库