Summary
In this chapter, we have taken another step toward expanding our Python vocabulary. We have seen how to drive the execution of code by evaluating conditions, along with how to loop and iterate over sequences and collections of objects. This gives us the power to control what happens when our code is run, which means we are getting an idea of how to shape it so that it does what we want, having it react to data that changes dynamically.
We have also seen how to combine everything together in a couple of simple examples, and in the end, we took a brief look at the itertools
module, which is full of interesting iterators that can enrich our abilities with Python to a greater degree.
Now it is time to switch gears, take another step forward, and talk about functions. The next chapter is all about them, and they are extremely important. Make sure you are comfortable with what has been covered up to now. We want to provide you with interesting examples, so we will have to go a little...