我想编写一个输入两个变量a,b的函数,它将a / b作为float返回,而不管a和b的类型如何。现在我这样做:
def f(a, b):
return float(a)/float(b)
有更好的方法吗?
答案 0 :(得分:10)
假设您使用的是Python2,请将其放在文件的顶部
from __future__ import division
现在/
将始终提供浮动。使用//
表示旧行为。
如果您使用的是Python3,那么这已经是/
答案 1 :(得分:1)
您可以简单地强制将其中一个操作数转换为float类型,例如:
def f(a, b):
return (a*1.0)/b
答案 2 :(得分:0)
这取决于。 ;)
最安全的方法是做你拥有的,这适用于可以转换为float
的每种数字类型。某些数字类型(例如Python 3中的Fraction
)即使使用新分区(仅影响Fraction
s - 其他类型定义int
也会返回/
他们自己)但您的代码会将Fraction
正确转换为floats
。