坚持使用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命令交互界面则要朴素多了。