Jupyter notebook is a development environment where you can immediately see the result of code execution and its separate fragments. The difference from a traditional development environment is that you can break the code into chunks and execute them in any order. Imagine that you can write a piece of code on a napkin and tell the napkin: “Execute”.

In such a development environment you can, for example, write a function and test its work at once without launching the whole program. You can also change the order of code execution. You can load a file into memory separately, check its contents separately, and process its contents separately.

And jupyter notebooks also have a result output right after a code fragment. For example, you can see a plotted graph, get preliminary figures or any other visualization right in the middle of the code.

What languages are supported

Most often, when people talk about jupyter notebooks, they mean working with Python. But in fact, you can work with other languages as well:Why everyone loves Python

  • Ruby;
  • Perl;
  • R;
  • bash scripts.

For this purpose, special magic commands are used, which are called magic commands. They allow you to run code in other languages, and also significantly extend the capabilities of regular Python.

The main area of application of notebooks is machine learning, neural networks, data visualization and statistics.

This environment is also often used for incremental development, when you need to check the work of different code fragments step by step. The point is that code in notebooks is stored in independent cells and can be run in any order or one by one. This allows you to quickly experiment with algorithms and find the optimal solution.

Also, jupyter notebooks are used when teaching Python programming to write code and immediately see the result of its work.