在Python中使用7.0或float(7)是否计算量较小?
我很好奇哪种形式更有效,风格正确,等等。我觉得“.0”方法更快;我不知道为什么“浮动”方法同样受到赞赏(如果是的话)。7.0是“更好的”,演员不需要浮动,它会自动执行在Python中使用7.0或float(7)是否计算量较小?,python,types,Python,Types,我很好奇哪种形式更有效,风格正确,等等。我觉得“.0”方法更快;我不知道为什么“浮动”方法同样受到赞赏(如果是的话)。7.0是“更好的”,演员不需要浮动,它会自动执行 float()最好保存为将非float强制转换为float。float文本可以写为7.0,这很好,因为它们是自动类型float 如果要将整数或字符串转换为浮点,则float()函数是合适的,但不需要调用该函数来编写浮点文本。使用7.0方法,使用float(7)方法将整数或字符串类型转换为浮点,因此这是另一种用法,例如: a = 7
float()最好保存为将非float强制转换为float。float文本可以写为
7.0
,这很好,因为它们是自动类型float
如果要将整数或字符串转换为浮点,则
float()
函数是合适的,但不需要调用该函数来编写浮点文本。使用7.0
方法,使用float(7)
方法将整数或字符串类型转换为浮点,因此这是另一种用法,例如:
a = 7
b = "7"
print float(a)
7.0
print float(b)
7.0
在以后重新读取代码时,使用float(0)
更为明确,如果您意外地删除了“.0
”使用float(7)
会增加一些不必要的开销,Python必须在globals()
中找到float
函数并调用它。使用7.0
在编译时而不是运行时执行所有必要的转换。您可以使用
导入dis
>>>def f():返回7.0
...
>>>def g():回油浮动(7)
...
>>>dis.dis(f)
10负载常数1(7.0)
3返回值
>>>dis.dis(g)
1 0加载\u全局0(浮动)
3负载常数1(7)
6调用函数1
9返回值
以下内容在Python中都是等效的:
>>> 7. == 7.0 == float(7) == float("7")
True
在硬编码值时,我会避免使用float(7)
或float(“7”)
,因为Python解释器必须首先将值转换为整数或字符串,然后将其转换为浮点
为了避免这种开销,请使用7.
或7.0
为Python提供浮点文本
当然,
float()float(7)
创建一个整数,然后调用float()
函数将整数转换为浮点,因此调用float(7)
会导致函数调用开销以及检查float()
函数时可能出现的任何错误
当然,对于大多数实际目的来说,速度上的差异不太重要(除非您处于一个深循环中,代码被调用了数亿次),但是当解释器具有用于构造浮点的内置语法时,调用转换函数有点不雅观
当您要转换的不是浮点(如字符串或整数)时,请使用float()。谢谢大家!float()
也会带来一些开销。如果你觉得下面的答案有用,就接受它。一个人怎么会不小心掉了它?@Michaelhofman说你有这个应该是\u a\u float=7.0/分母
,其中分母是一个int。我的想法是,为了将来的可维护性,最好有一个非常明确的方式来指出7.0
需要是一个浮点值,以便在以后有人将7.0更改为另一个常量(如6)并忘记添加“.0”时不会出现舍入问题。如果尚未使用,则应使用来自未来导入部门的。那么这就不是问题了。