我需要在Python 2.7中进行简单的数学计算,包括求和、减法、除法、乘法、数字列表的求和等。
我想编写优雅、健壮且高效的代码,但我必须承认,有些事情让我感到困惑,例如:
- 如果方程中有
1/(N-1)*x
,我应该只编写1/(N-1)*x
,或者可能是1.0/(N-1)*x
、1.0/(N-1.0)*x
或其他任何组合吗? - 对于除法,我应该使用
//
还是/
以及from __future__ import division
? - 有哪些最佳实践,比如“使用
math.fsum()
连接浮点数列表”? - 我应该假定输入的数字为浮点数,还是为了安全起见进行转换(可能会冒多次使用
float(x)
的效率风险)?
那么,在Python中编写用于简单数学计算的代码的最佳实践是什么?
- 优雅/符合Python特色,
- 高效,
- 对于输入数据的确切数字类型(浮点数与整数)的不确定性等问题具有鲁棒性?
x/(N-1.0)
- 一个浮点数就足以污染所有内容,并且可以减少一个无用的操作 (*1.0
)。你永远不会在非整数除法中使用//
。 - Amadan