Per the first blurb on IPython’s web page, it is described as a rich architecture for interactive computing with:

A kernel for Jupyter.
Support for interactive data visualization and use of GUI toolkits.
Flexible, embeddable interpreters to load into your own projects.
Easy to use, high performance tools for parallel computing.

You can see that IPython has a veritable treasure trove of very powerful features. This book won’t be covering any of those.

Instead, we are going to explore the interactive shell via the command line that one would typically use in conjunction with Python web development, typically when working with a Django / Flask / Tornado / other Python web framework.

We are not going to cover every single feature that is available. We are going to concentrate on the ones that I feel will give you a significant boost in efficiency and usefulness. I encourage you to explore the official documentation in depth.

As far as specific versions go, this book will cover what is current at the time of writing, which is Python 3.9.0 and IPython 7.19.0.