Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中为变量指定科学符号_Python_Scientific Notation - Fatal编程技术网

在Python中为变量指定科学符号

在Python中为变量指定科学符号,python,scientific-notation,Python,Scientific Notation,我试图请求一个浮点变量,然后将其科学符号分配给它,然后在下面的操作中使用该符号。如中所示,我希望程序实际使用符号,而不仅仅是返回其中的结果。 我使用print函数成功地转换了变量: def estim(abs(x)): a=print("{:.3e}".format(x)) return a 然而,这实际上并没有赋予x科学值。然后我试着 b=float(a) 但是a是非类型的,所以它不起作用。有什么帮助吗 编辑:我所说的科学符号是指X.YYYe+Z, 示例:31234.342

我试图请求一个浮点变量,然后将其科学符号分配给它,然后在下面的操作中使用该符号。如中所示,我希望程序实际使用符号,而不仅仅是返回其中的结果。 我使用print函数成功地转换了变量:

def estim(abs(x)):
    a=print("{:.3e}".format(x))
    return a
然而,这实际上并没有赋予x科学值。然后我试着

b=float(a)
但是a是非类型的,所以它不起作用。有什么帮助吗

编辑:我所说的科学符号是指X.YYYe+Z, 示例:31234.34234->3.12e+04

如果您执行
“{.3e}”。格式(x)
您将在小数点后获得3位数字,即

>>> a = 31234.34234
>>> "{:.3e}".format(a)
'3.123e+04'
要得到您想要的,您需要执行
“{.2e}”.format(x)

将其转换回
float
将得到原始值

作为一项功能

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

您可以使用
%
(可能不推荐使用)


打印返回的值始终为“无”,我想您需要的是:

def estim(x):
    a="{:.3e}".format(abs(x))
    print a
    return a
您需要使用
a=“{.3e}”。格式(x)

这里有一个例子

x=246789;
a="{:.3e}".format(x);
print a;
print float(a);
输出

2.468e+05
246800.0

你的代码毫无意义。也许,
a=“{.3e}”。格式(x)
会起作用吗?在Python中,floats内部不使用“十进制表示法”或“科学表示法”。这些只是输出格式。你说的“用符号工作”是什么意思?我的意思是,而不是低估44432.12,程序会认为它是4.44×10 ^ 4,例如,实际上是44400。ForceBru的建议似乎有效,谢谢。@L.R.
31234.34234->3.12e+04
。。。您需要
a=“{.2e}”。格式(x)
,而不是
a=“{.3e}”。格式(x)
。(现在不编辑)你想用这个号码做什么?科学记数法是一种显示数字的方法。它不会改变数字是多少。因此,只有当您真正想要使用数字的字符串表示形式时,“使用科学记数法中的数字”才有意义。您提供的
estim
函数的代码不起作用:“SyntaxError:无效语法。”
x=246789;
a="{:.3e}".format(x);
print a;
print float(a);
2.468e+05
246800.0