如何在Python解释器中控制数字格式?
问题描述
我经常使用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站点或搜索)。
相关文章