微信公众号:当程序员以后
使用decimal进行高精度计算
Python内置了decimal模块,主要解决日常精度,默认提供了28个小数位进行数学计算。
decimal中Decimal 类解决了IEEE 754浮点数产生的精度问题,并且可以进行更为准确舍入行为。
所以我们在涉及重要场合比如货币金额计算情况,非常合适。
当然我们也可以进行把小数转化为整数计算,只是会更麻烦一些,不够灵活应对。
不要返回None
遇到特殊情况是,应该抛出异常,而不是返回None,比如除法分子为0的情况,当调用者看到异常就知道如何修正代码。
举一个错误的例子
def divide(a, b):
try:
return a/b
except ZeroDivisonError
return None
返回None的话,由于我们有空字符串,0,空字典,空列表等都表示False,容易误导我们写出错误的代码。
另外就算我们意识到这个问题,我们代码中也会充斥许多检查None值的判断语句,变相增加了我们工作量
传递可变参数,默认值用None
紧接上一条,在传递可变参数我们参数应该使用None,因为函数的默认值,只会在程序加载模块并读到本函数的定义时进行评估。
如果默认值用空字典,空列表,往往会导致前后共用一个默认值,发生奇怪行为。
我们可以使用None作为形式上的默认值,在中途重新赋值,改变这种行为。
使用推导式替换map和filter
通过列表、字典推导可以让我们代码看起来更为简单明了,比如下面例子:
a = [1,2,3,4,5,6]
把filter函数和map结合起来也能做到,但是代码变得更为复杂难懂
上面一对比一下就知道那个更容易理解了,列表推导虽好,但不建议多个列表推导式,虽然最终看起来节约了代码,但是给人难以理解,增加理解成本。
毕竟代码是给人看的,只是顺带给机器执行一下而已。:)
使用ipdb进行调试
调试过程中,虽然有 print,logger,单元测试帮助我们查找问题原因,但是面对更为复杂的问题调试,往往需要更强大的调试工具进行交互操作,打印局部变量,程序状态,查看上下文,单步调试等等。
ipdb是pdb的升级版,非常灵活支持代码变量输入补全,非常方便,类似ipython和python的功能对比,推荐大家去使用使用。
使用环境变量
经常看到一些新手开发的时候,在进行环境参数配置导入导出的时候喜欢用层层叠加的方式覆盖,每次开发过程把配置文件名pro_config.py 改为 pro_config.py.bak来进行环境变量控制等等。
try:
from local_config import *
from dev_config import *
from pro_config import *
except:
pass
Python有对应的包 importlib
,结合os
模块,我们可以通过export
进行环境变量的控制,
import importlib
import os
config_file = os.getenv('XXX_API_SETTINGS')
if not config_file:
config_file = 'XXX.config.test'
config_module = importlib.import_module(config_file)
上面的几个技巧,是我常用的一些方法技巧,起于Python,不止Python,欢迎大家在留言区留下你的方式方法,我们一起讨论。
另外在上一篇文章我分享了提高代码质量,这本书就够了,这里面有赠送「代码整洁之道」这本书的活动,今天的技巧就有来自该书,感兴趣的同学可以去上篇文章下面留言参与。
相关文章:
提高代码质量,这本书就够了
Python新手常见的几个问题及工具推荐
分享到:
相关推荐
【Python编程技巧】 在Python编程中,遵循良好的编码习惯和规范可以显著提高代码的可读性和维护性。以下是一些提升Python代码质量的小建议: 1. **编写易读易维护的代码** - 避免使用仅靠大小写区分的变量,如`var...
### 编写高质量代码:改善Python代码的91个建议 #### 核心知识点概览 ...通过学习本书,读者不仅可以获得关于如何编写高质量Python代码的具体指导,还能深刻理解Python编程的核心理念和技术细节。
在Python的高级编程技巧中,我们经常会遇到一系列提升效率和代码质量的方法。这些技巧涵盖了元编程、装饰器、生成器、上下文管理器、错误处理、模块化设计等多个方面。通过对这些技巧的深入理解和实践,我们可以使...
以上只是部分知识点,书中91个建议涵盖了Python编程的各个方面,旨在帮助程序员编写出更高质量的代码,提升开发效率和软件质量。通过实践这些建议,你将能够更好地驾驭Python,创作出更加优雅、高效的代码。
Python 编写脚本工具是Python开发者不可或缺的利器,它能极大地提高开发效率并减少语法错误。Python作为一种高级编程语言,其语法结构清晰,易于学习,但错误处理并不宽容,尤其是当使用非Python原生的编写工具时,...
### Python技术算法编写技巧 #### 一、引言 Python作为一种多用途的编程语言,在...随着经验的积累和技术的进步,开发者们可以不断提高自己在Python中的算法编写水平,为各种应用开发提供更高效、高质量的解决方案。
本教程集合了高质量的深度强化学习(Deep Reinforcement Learning, DRL)算法的实现,采用流行的深度学习框架PyTorch编写。深度强化学习是人工智能领域的一个热点,它结合了深度学习的强大表征能力和强化学习的决策...
在Python编程中,编写整洁的代码是至关...以上这些原则和技巧能帮助你编写出整洁、易于理解的Python代码,提升代码质量,使得项目更加成功。在实际编程过程中,不断学习和实践这些知识点,你的代码将会变得更加专业。
如今我使用 Python 已经很长时间了,但当我回顾之前写的一些代码时,有时候会感到很沮丧。...由此,我总结了多年来自己所编写的 Python 代码的质量变化过程。它们变得更加简洁、健壮、易读。但是什么原因使
在Python编程中,掌握一些高级技巧能够显著提升代码的可读性和效率。下面是一些Python开发中的高级技巧,包括但不限于列表...在编写Python程序时,适当运用这些技巧可以提高代码质量,使其更符合Pythonic的编程风格。
在Python中,掌握一些高级编程技巧和技术能显著提升代码质量和效率。本文将深入探讨四个关键的高级概念:迭代器与生成器、装饰器、上下文管理器以及异步编程。 1. 迭代器与生成器: 迭代器是Python中处理可迭代...
Python开发者需要掌握需求分析的技巧,设计模式的运用,以及如何编写高质量的代码和测试用例。此外,部署和维护是软件生命周期中后期的重要环节,Python同样提供了丰富的工具和框架,例如Django和Flask的Web应用部署...
最后,编写高质量Python代码是每个开发者的追求。书中可能会讲解PEP 8编码规范,以及如何使用单元测试和持续集成来确保代码质量。 总的来说,《Python高级编程》中文译本是一本全面覆盖Python高级特性的指南,无论...
Python编程的技巧与实践涵盖了多个核心领域,这些领域对于熟练掌握Python编程至关重要。Python作为一种高级编程语言,由Guido van Rossum创造,以其简洁明了的语法和强大的功能深受程序员喜爱。以下是Python编程的...
- 单元测试:了解unittest模块,编写测试用例,确保代码质量。 - 调试技巧:学习如何使用断点、步进等工具定位并修复程序错误。 通过《疯狂Python讲义》的系统学习,读者不仅可以掌握Python编程的基础,还能...
在Python编程语言的世界里,无论是初学者还是正在向中级阶段过渡的用户,掌握一些实用的技巧和最佳实践能显著提高编程效率和代码质量。本文将深入探讨这些"Python Tips",帮助你提升Python编程技能。 1. **理解并...
同时,Python的生态系统中有众多高质量的第三方库。书中会介绍如何有效地利用这些资源,提高开发效率。 8. **错误和异常处理**:学习如何正确地捕获、处理和报告程序中的错误和异常是每个Python程序员的必修课。这...
它涵盖了如何编写可被同行尊重的高质量Python代码,以及如何使用元编程和内省功能来提升代码的效能。此外,《Pro Python》还教授了如何准备国际化代码,确保代码质量和理解Python社区。 从《Pro Python》的内容来看...
6. **Effective Python Programming英文版.pdf**:这本书可能讨论的是编写高质量Python代码的最佳实践,包含了一些高级话题,如元编程、装饰器、生成器、上下文管理器以及如何利用Python的特性来优化代码。...