第3章 IPython:一种交互式计算和开发环境
为无为,事无事,味无味。大小多少。报怨以德。
图难于其易,为大于其细;
天下难事,必作于易;天下大事,必作于细。
——老子
人们经常问我,“你的Python开发环境是什么?”我的回答基本永远都是“IPython外加一个文本编辑器”。如果想要得到更加高级的图形化工具和代码自动完成功能,你也可以考虑用一款集成开发环境(IDE)来代替文本编辑器。即便如此,我仍然强烈建议你将IPython作为工作中的重要工具。有的IDE甚至本身就集成了IPython,所以说两全其美的办法还是有的。
2001年,Fernando Pérez为了得到一个更为高效的交互式Python解释器而启动了一个业余项目,于是IPython项目诞生了。在接下来的11年中,它逐渐被公认为现代科学计算中最重要的Python工具之一。IPython本身并没有提供任何的计算或数据分析功能,其设计目的是在交互式计算和软件开发这两个方面最大化地提高生产力。它鼓励一种“执行-探索”(execute explore)的工作模式,而不是许多其他编程语言那种“编辑-编译-运行”(edit-complie-run)的传统工作模式。此外,它跟操作系统shell和文件系统之间也有着非常紧密的集成。由于大部分的数据分析代码都含有探索式操作(试误法和迭代法),因此IPython(在绝大多数情况下)将有助于提高你的工作效率。
当然了,IPython项目现在已经不再只是一个加强版的交互式Python shell,它还有一个可以直接进行绘图操作的GUI控制台、一个基于Web的交互式笔记本,以及一个轻量级的快速并行计算引擎。此外,跟许多其他专为程序员设计(以及由程序员设计)的工具一样,它也是高度可定制的。我将在本章最后介绍一些这样的功能。
由于IPython的核心功能是交互,所以在没有动态控制台的情况下,本章中的某些功能很难说得清楚。如果这是你第一次学习IPython,那我建议你照着例子实际动手试试,感觉一下到底是怎么一回事。跟所有由键盘驱动的控制台环境一样,锻炼对常用命令的肌肉记忆是学习曲线中不可或缺的一部分。
注意: 在第一次阅读时,本章的许多内容都可跳过不看,因为它们对理解本书其余的内容没有影响。本章的目的是让你对IPython所提供的功能有一个全面的了解。