【发布时间】:2013-05-27 20:01:29
【问题描述】:
如何修改 python 决定以科学计数法打印的点?
例如我希望所有> 1e4 或< 1e-4 都以科学计数法打印。
好:
In [11]: 5e20
Out[11]: 5e+20
不好:
In [12]: 5e10
Out[12]: 50000000000.0
【问题讨论】:
标签: python printing formatting ipython output
如何修改 python 决定以科学计数法打印的点?
例如我希望所有> 1e4 或< 1e-4 都以科学计数法打印。
好:
In [11]: 5e20
Out[11]: 5e+20
不好:
In [12]: 5e10
Out[12]: 50000000000.0
【问题讨论】:
标签: python printing formatting ipython output
在 IPython 中你可以使用
%precision %.4g
这将打印绝对值在科学计数法中 = 1e4 的浮点值。
您可以在IPython API Docs 中找到有关%precision 命令的更多信息。
对于字符串格式选项,请查看Python Docs
【讨论】:
c.InteractiveShellApp.exec_lines = ['%precision %.4g'] 行。要找到该文件,请使用ipython locate。就我而言,它位于~/.ipython/profile_default/ipython_config.py 之下(请参阅IPython Doc)。感谢您指出引用,我将删除它们:-)。
实际上它与 IPython 无关,因为它只是调用__str__。可悲的是,float 作为内置类型,是用 C 实现的,您不能对 C 类型进行猴子补丁。因此,您唯一的选择是修改 cpython 中的 __str__ 实现或修补 IPython 使其比调用 __str__ 更智能。
【讨论】: