在Python中将表达式评估为浮点数
我想写一个函数,这个函数接收两个变量 a 和 b,然后返回 a 除以 b 的结果,结果是一个小数,不管 a 和 b 的类型是什么。目前我这样做:
def f(a, b):
return float(a)/float(b)
有没有更好的方法来实现这个呢?
3 个回答
0
这要看情况。;)
最安全的方法就是使用你现在的做法,这样可以适用于所有可以转换为 float
的数字类型。比如在 Python 3 中,Fraction
这种数字类型,即使使用新的除法运算(这个新运算只影响 int
类型,其他类型有自己的 /
定义),它仍然会返回一个 Fraction
。不过你的代码会正确地把 Fraction
转换成 float
。
1
你可以简单地把其中一个操作数强制转换成浮点数类型,比如:
def f(a, b):
return (a*1.0)/b
10
假设你在用Python2,把这段代码放在文件的最上面:
from __future__ import division
这样一来,/
这个符号每次都会返回一个小数。如果你想要以前那种行为,可以用//
。
如果你在用Python3,那这个/
的行为就是默认的了。