Summary
In this chapter, we explored the world of functions. They are extremely important and, from now on, we'll use them basically everywhere. We talked about the main reasons for using them, the most important of which are code reuse and implementation hiding.
We saw that a function object is like a box that takes optional inputs and produces outputs. We can feed input values to a function in many different ways, using positional and keyword arguments, and using variable syntax for both types.
Now you should know how to write a function, document it, import it into your code, and call it.
In the next chapter, we're going to see how to deal with files and how to persist data in several different ways and formats.