`G` 类型的 python % 字符串格式如何表现?

Mah*_*aha 7 python

读到

gG根据所述指数的大小和为指定的值的浮点或指数输出之间转换类型选择,.<precision>。如果指数小于 -4 或不小于 ,则输出与e/相同。否则,它与/相同:E.<precision>fF

另外,我没有得到“如果指数小于 -4 或不小于.<precision>”。我们在哪里明确指定指数?“指数”是指小数点后的位数吗?我是这么觉得的,因为当我尝试在小数点后有四位数字时,它打印为f,但是当我尝试在小数点后有五位数字时,它打印为e

>>> '%g' % 0.0003
'0.0003'
>>> '%g' % 0.00003
'3e-05'
Run Code Online (Sandbox Code Playgroud)

一季度。我对上述理解正确吗?

Q2。但是,然后,我不明白为什么它在下面的例子中没有做同样的事情:

>>> '%g' % 3.14
'3.14'
>>> '%g' % 3.014
'3.014'
>>> '%g' % 3.0014
'3.0014'
>>> '%g' % 3.00014
'3.00014'
>>> '%g' % 3.000014
'3.00001'
>>> '%g' % 3.0000014
'3'
Run Code Online (Sandbox Code Playgroud)

Q3。最后,.<precision>如果指数小于 -4 或不小于.<precision>“ ,我没有得到“或不小于”的部分。我试图明确指定小数点后小于和大于 4 位的精度。但它仍然打印相同的内容:

>>> '%g' % 0.00003
'3e-05'
>>> '%.3g' % 0.00003
'3e-05'
>>> '%.9g' % 0.00003
'3e-05'
Run Code Online (Sandbox Code Playgroud)

Daw*_*weo 0

“指数”是指小数点后的位数吗?

不。指数只是用符号表示的数字e,例如0.999可以表示9.990000e-01为 的平均指数0.999-1。指数值确实表明了数量级