Here it is—a shiny new edition of Beginning Python. If you count its predecessor, Practical Python, this is
actually the third edition, and a book I’ve been involved with for the better part of a decade. During this
time, Python has seen many interesting changes, and I’ve done my best to update my introduction to the
language. At the moment, Python is facing perhaps its most marked transition in a very long time: the
introduction of version 3. As I write this, the final release isn’t out yet, but the features are clearly defined
and working versions are available. One interesting challenge linked to this language revision is that it isn’t
backward-compatible. In other words, it doesn’t simply add features that I could pick and choose from in
my writing. It also changes the existing language, so that certain things that are true for Python 2.5 no longer
Had it been clear that the entire Python community would instantly switch to the new version and
update all its legacy code, this would hardly be a problem. Simply describe the new language! However, a lot
of code written for older versions exists, and much will probably still be written, until version 3 is universally
accepted as The Way To GoTM.
So, how have I gotten myself out of this pickle? First of all, even though there are incompatible changes,
most of the language remains the same. Therefore, if I wrote entirely about Python 2.5, it would be mostly
correct for Python 3 (and even more so for its companion release, 2.6). As for the parts that will no longer
be correct, I have been a bit conservative and assumed that full adoption of version 3 will take some time. I
have based the book primarily on 2.5 and noted things that will change throughout the text. In addition, I’ve
included Appendix D, which gives you an overview of the main changes. I think this will work out for most