Terminal mode came to Vim in version 8.1, and it allows you to run a Terminal in a split window. You can enter terminal mode by typing the following:
:terminal
This will open your system's shell (your default shell in Linux, or cmd.exe in Windows) in a horizontal split:
This is a wrapper around your system's Terminal, which lets you work with your shell as you normally would. This window is treated similarly to any other window (you can navigate between split using Ctrl + w commands), but the window is effectively locked into insert mode. You may also want to consider using tmux or a screen under Linux or macOS to work with a Terminal alongside Vim.
You can also use :term to execute a single command and place its output in a buffer. For example, we can run animal_farm.py as follows:
:term python3 animal_farm.py cat dog
The output is immediately available to us in a horizontal split: