Changed str example in Section 4.8, “Putting It All Together” to use a user-defined function, since Python 2.2 obsoleted the old example by defining a doc string for the built-in dictionary methods. Thanks Eric.
Fixed capitalization typo in the tip on truth values in Section 3.2, “Introducing Lists”. It's True and False, not true and false. Thanks to everyone who pointed this out.
Changed section titles of Section 3.1, “Introducing Dictionaries”, Section 3.2, “Introducing Lists”, and Section 3.3, “Introducing Tuples”. "Dictionaries 101" was a cute way of saying that this section was an beginner's introduction to dictionaries. American
colleges tend to use this numbering scheme to indicate introductory courses with no prerequisites, but apparently this is
a distinctly American tradition, and it was unnecessarily confusing my international readers. In my defense, when I initially
wrote these sections a year and a half ago, it never occurred to me that I would have international readers.
Upgraded to version 1.52 of the DocBookXSL stylesheets.
Upgraded to version 6.52 of the SAXONXSLT processor from Michael Kay.
Various accessibility-related stylesheet tweaks.
Somewhere between this revision and the last one, she said yes. The wedding will be next spring.
Fixed mistake in Section 4.8, “Putting It All Together” where I implied that you could not use is None to compare to a null value in Python. In fact, you can, and it's faster than == None. Thanks to Ori pointing this out.
Clarified in Section 3.2, “Introducing Lists” where I said that li = li + other was equivalent to li.extend(other). The result is the same, but extend is faster because it doesn't create a new list. Thanks to Denis pointing this out.
Fixed mistake in Section 3.2, “Introducing Lists” where I said that li += other was equivalent to li = li + other. In fact, it's equivalent to li.extend(other), since it doesn't create a new list. Thanks to Denis pointing this out.
Fixed typographical laziness in Chapter 2, Your First Python Program; when I was writing it, I had not yet standardized on putting string literals in single quotes within the text. They were
set off by typography, but this is lost in some renditions of the book (like plain text), making it difficult to read. Thanks
to Denis for this suggestion.
Fixed mistake in Section 2.2, “Declaring Functions” where I said that statically typed languages always use explicit variable + datatype declarations to enforce static typing.
Most do, but there are some statically typed languages where the compiler figures out what type the variable is based on
usage within the code. Thanks to Tony for pointing this out.
Added link to French translation. They did the right thing and translated the source XML, so they can re-use all my build scripts and make their work available in six different formats.
Upgraded to version 1.43 of the DocBookXSL stylesheets.
Upgraded to version 6.43 of the SAXONXSLT processor from Michael Kay.
Massive stylesheet changes, moving away from a table-based layout and towards more appropriate use of cascading style sheets.
Unfortunately, CSS has as many compatibility problems as anything else, so there are still some tables used in the header and footer. The resulting
HTML version looks worse in Netscape 4, but better in modern browsers, including Netscape 6, Mozilla, Internet Explorer 5, Opera 5, Konqueror, and iCab. And it's still completely readable in Lynx. I love Lynx. It was my first web browser. You never forget your first.
Moved to Ant to have better control over the build process, which is especially important now that I'm juggling six output formats and
Consolidated the available downloadable archives; previously, I had different files for each platform, because the .zip files
that Python's zipfile module creates are non-standard and can't be opened by Aladdin Expander on MacOS. But the .zip files that Ant creates are completely standard and cross-platform. Go Ant!
Now hosting the complete XML source, XSL stylesheets, and associated scripts and libraries on SourceForge. There's also CVS access for the really adventurous.
Re-licensed the example code under the new-and-improved GPL-compatible Python 2.1.1 license. Thanks, Guido; people really do care, and it really does matter.
The PDF and Word versions now have colorized examples, an improved table of contents, and properly indented tips and notes.
The Word version is now in native Word format, compatible with Word 97.
The PDF and text versions now have fewer problems with improperly converted special characters (like trademark symbols and curly
Added link to download Word version for UNIX, in case some twisted soul wants to import it into StarOffice or something.
Fixed several notes which were missing titles.
Fixed stylesheets to work around bug in Internet Explorer 5 for MacOS which caused colorized words in the examples to be displayed in the wrong font. (Hello?!? Microsoft? Which part of <pre> don't you understand?)
Fixed archive corruption in MacOS downloads.
In first section of each chapter, added link to download examples. (My access logs show that people skim or skip the two
pages where they could have downloaded them (the home page and preface), then scramble to find a download link once they actually start reading.)
Tightened the home page and preface even more, in the hopes that someday someone will read them.
Soon I hope to get back to actually writing this book instead of debugging it.
Fixed important error in Section 2.2, “Declaring Functions”: functions that do not explicitly return a value return None, so you can assign the return value of such a function to a variable without raising an exception.
Wrote scripts to convert book to new output formats: one single HTML file, PDF, Microsoft Word 97, and plain text.
Registered the diveintopython.org domain and moved the book there, along with links to download the book in all available output formats for offline reading.
Modified the XSL stylesheets to change the header and footer navigation that displays on each page. The top of each page is branded with
the domain name and book version, followed by a breadcrumb trail to jump back to the chapter table of contents, the main table
of contents, or the site home page.