设置ipython';s的默认科学符号阈值

设置ipython';s的默认科学符号阈值,python,printing,formatting,ipython,output,Python,Printing,Formatting,Ipython,Output,如何修改python决定使用科学记数法打印的点 例如,我希望所有的>1e4或=1e4的浮点值 您可以在中找到有关%precision命令的更多信息。 有关字符串格式选项,请查看真棒,谢谢!(注:我认为不应该有报价)。是否要将其作为默认行为(或每次运行ipython时都加载)?在ipython的配置文件中添加(或编辑)行c.InteractiveShellApp.exec_lines=['%precision%.4g']。要定位文件,请使用ipython locate。在我的例子中,它位于~/.i

如何修改python决定使用科学记数法打印的点

例如,我希望所有的
>1e4
<1e-4
都用科学记数法打印出来

好:

坏的:


实际上,它与IPython无关,因为它只是调用
\uuu str\uuu
。遗憾的是,
float
,作为一种内置类型,是在C中实现的,您不能monkeypatch C类型。因此,您唯一的选择是修改cpython中的
\uuuuuuu str\uuuuuuu
实现,或者修补IPython,使其比在您可以使用的IPython中调用
\uuuu str\uuuuuu
更智能

%precision %.4g
这将打印绝对值在科学记数法中小于1e-4或>=1e4的浮点值

您可以在中找到有关
%precision
命令的更多信息。
有关字符串格式选项,请查看

真棒,谢谢!(注:我认为不应该有报价)。是否要将其作为默认行为(或每次运行ipython时都加载)?在ipython的配置文件中添加(或编辑)行
c.InteractiveShellApp.exec_lines=['%precision%.4g']
。要定位文件,请使用
ipython locate
。在我的例子中,它位于
~/.ipython/profile\u default/ipython\u config.py
(请参阅)。感谢您指出这些引用,我将删除它们:-)。此解决方案似乎不再有效(IPython 2.2.0/RHEL7/Python 2.7.5)。它继续为不符合我要求的阈值的值打印科学符号。我刚刚用Python 2.7.9和IPython 2.4.0试用了它,它仍然适用于我。
In [12]: 5e10
Out[12]: 50000000000.0
%precision %.4g