[英]Scientific notation literal with variable exponent in Python
文字3e4
表示 python 中的float
30000(至少为 3.8)。
>>> print(3e4)
30000.0
以下代码的语法显然是无效的:
x=4
3ex
3ex
不是一个有效的表达式,但这个例子可以帮助我提出我的问题:
显然,表达式3*10**4
表示相同的数字,但我这里的问题纯粹与科学记数法文字有关。 只是出于我的好奇心,有没有一种方法可以使用具有可变功率的相同语法,比:
x=4
eval(f"1e{x}")
3e4
和3*10**4
之间的一个细微差别是类型(分别为 float 和 int)。 在计算这两个表达式时,执行时间是否也存在差异?
对于您的第一个问题:不,文档不建议您可以。
有没有办法使用具有可变功率的相同语法?
When float is instantiated from a string , it calls out to a CPython C library PyOS_string_to_double to which handles making the str locale-aware ( .
vs ,
) before passing the string directly to the C function strtod
doc .
同时PyOS_string_to_double 的文档没有提到配置指数的任何特殊方法。
对于您关于性能的第二个问题,这很容易进行基准测试。 但是,我们没有可作为基准的候选人。 所以,这是一个没有实际意义的问题。
执行时间是否也存在差异?
我希望这能满足你的好奇心。 如果没有,请随意挖掘我链接的 C 代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.