Chapter 2. IPython

One of Python’s strengths is its interactive interpreter, or shell.
The shell provides a way to quickly test ideas, test features and
interfaces of modules you are working with, and perform some one-off tasks
for which you would otherwise have written a three line script. The way that
we tend to code is by simultaneously running a text editor and a Python
prompt (actually, an IPython prompt, but we’ll get to that in a moment),
frequently interacting with them both, switching back and forth between
shell and editor, and often pasting code from one to the other. This
approach allows us to see immediate results from Python about the way it
handles code and to quickly get the code in the text editor working the way
we want it to.

At its heart, IPython is a bundle of interactive Python goodness. It
is an amazing Python shell, far superior to the standard Python shell. It
also provides the ability to create highly customized console-based command
environments; it allows for easy inclusion of an interactive Python shell
into any Python application; and it can even be used as a system shell, with
some level of success. This chapter will focus on using IPython to improve
your productivity on *nix-shell and Python-related tasks.