This is even better read using Crunchy (http://code.google.com/p/crunchy) running under Python 3. Crunchy styles the code, making it more pleasant to read, while inserting a Python interpreter whenever it detects some code, allowing to reproduce (or modify) the examples, instead of simply passively reading them.