如何在Python解释器中控制数字格式?

2022-03-07 00:00:00 python ipython

问题描述

我经常使用python解释器进行快速的数值计算,并希望使用指数表示法自动打印所有的数值结果。是否可以在整个会话中设置此设置?

例如,我希望:

>>> 1.e12
1.0e+12

不是:

>>> 1.e12
1000000000000.0

Python

创建一个推荐答案脚本,命名为您想要的任何名称(比如mystartup.py),然后将环境变量PYTHONSTARTUP设置为该脚本的路径。然后,Python将在启动交互式会话时(但不是在运行脚本时)加载此脚本。在此脚本中,定义类似以下内容的函数:

def _(v):
    if type(v) == type(0.0):
        print "%e" % v
    else:
        print v

然后,在交互式会话中:

C:	emp>set PYTHONSTARTUP=mystartup.py

C:	emp>python
ActivePython 2.5.2.2 (ActiveState Software Inc.) based on
Python 2.5.2 (r252:60911, Mar 27 2008, 17:57:18) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> _(1e12)
1.000000e+012
>>> _(14)
14
>>> _(14.0)
1.400000e+001
>>>

当然,您可以定义要调用的任何函数,并且可以根据需要精确地工作。

使用IPython会比使用IPython更好。它非常棒,您可以使用result_display.when_type(some_type)(my_print_func)设置您想要的数字格式(有关如何使用它的更多详细信息,请参阅IPython站点或搜索)。

相关文章