0
点赞
收藏
分享

微信扫一扫

IPython shell中对显示结果的格式化优化


       坚持使用Python的原声command交互将近两年了,时间可以说是从我开始学习Python一直持续到现在。之前在微博上看到别人说:IPython真是一个伟大的发明,简单尝试了一下,看着命令行之间的空白区非常大有一点不适应直接就放弃了。那时候觉得,这个东西或许对我没啥用。

       今天简单试了几个小例子,看到输出的数据被格式化成了一种很规矩的方式,瞬间觉得这个东西做的确实是不坏。

       在Python的命令行交互中,虽说是文字的输出排列十分紧密,但是以下操作最终显示的字典看起来有一点凌乱:

E:\WorkSpace\05_PythonDataAnalysis\chapter04>python

Enthought CanopyPython 2.7.11 | 64-bit | (default, Jun 11 2016, 11:33:47) [MSC v.1500 64 bit(AMD64)] on win32

Type"help", "copyright", "credits" or"license" for more information.

>>> fromnumpy.random import randn

>>> data= {i : randn() for i in range(7)}

>>> data

{0:1.3867653769581234, 1: -1.141289077539207, 2: -1.6518053479068247, 3:1.627467510514476, 4: 2.7003756607391662, 5: 0.40526838062089454, 6:-0.05973507325563356}

       而相同的操作切换到了IPython则完全不是同一个效果,具体如下:

In [11]: fromnumpy.random import  randn


In [12]: data ={i: randn() for i in range(7)}


In [13]: data

Out[13]:

{0:-1.4557583869619666,

 1: 1.2310729704385877,

 2: 0.37474664319983375,

 3: -0.9504748200468184,

 4: 1.4534140748165172,

 5: -0.4748609137908646,

 6: -0.4291501104057692}

       显示的输出结果十分规整,同时,交互界面还会有不同的颜色标识(这里的格式没能够复制出来)。

       通过这个简单的小特性也可以看出,为什么那么多人习惯了IPython之后便觉得这是个伟大的发明了,在使用上确实是有了很大的改善。另外值得一提的是,在IPython中交互输入是可以通过Tab自动补全很多信息的,这有种找到了Linux中的shell那种感觉,十分舒心。而相比之下的Pyhton命令交互界面则要朴素多了。


举报

相关推荐

0 条评论