What are functions, and when should we use them?
In programming, a function is the named section of the code that encapsulates a specific task and can be used relatively independently from the surrounding code.
How can data be provided to functions?
Conceptually, code in a function can access data from outside. The best way to pass the data, however, is via arguments—special temporary variables used exactly for that.
What does indentation mean? Is it required?
Yes; in Python, indentation is required and defines the grouping of code.
What should be covered in the docstring function? How can I read the docstring function?
Ideally, every module, function, and class should have a docstring. In all those cases, a docstring can be shown using the help function, or accessed programmatically via the __doc__ attribute.
When could it be useful to use type annotations...