在Python中为变量分配科学计数法 - python

我试图要求一个float变量,然后为其分配科学记号,然后在以下操作中使用该记号。如上所示,我希望程序实际使用该符号,而不只是返回其中的结果。
我设法通过使用打印功能来转换变量:

def estim(abs(x)):
    a=print("{:.3e}".format(x))
    return a

但是,这实际上并未将科学价值赋予x。然后我尝试

b=float(a)

但是a是None类型,因此它不起作用。有什么帮助吗?

编辑:用科学记数法表示X.YYYe + Z,
例如:31234.34234-> 3.12e + 04

python大神给出的解决方案

如果您执行"{:.3e}".format(x),您将在小数点后得到3位数字,即

>>> a = 31234.34234
>>> "{:.3e}".format(a)
'3.123e+04'

要获得所需的内容,您需要执行"{:.2e}".format(x)

>>> "{:.2e}".format(a)
'3.12e+04'
>>> float("{:.2e}".format(a))
31200.0

将其转换回float将为您提供原始值

作为功​​能

def estim(x):
    x = abs(x)
    a=("{:.2e}".format(x))
    print(a)
    return a

小费:

您可以使用%(可能已弃用)

>>> a = 31234.34234
>>> "%e"%a
'3.123434e+04'