Learning Python, 2nd Edition by Mark Lutz, David Ascher The following errata were *corrected* in the 3/05 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem (xviii) 4th paragraph; "Learning Python is designed to be naturally complimented by..." NOW READS: "Learning Python is designed to be naturally complemented by..." (xvi) last bullet in first list of bullets; "New testing and documentation tools such as PyDoc, PyUnit, and doctest (Chapter 11)" NOW READS: "New testing and documentation tools such as PyDoc, PyUnit, and doctest (Chapter 26)" (4) 4th paragraph, 2nd sentence; "Although this may be an intangible benefit, it's effect on productivity at large is an important asset." "It's" NOW READS "its." (10) 1st paragraph; "On the web, you'll also find a third-party system called gadfly that implements a SQL database for Python programs, a complete object-oriented database system called ZODB." NOW READS: "On the web, you'll also find a third-party system called gadfly that implements a SQL database for Python programs, and a complete object-oriented database system called ZODB." (12) 2nd paragraph; "Be-OS". NOW READS "BeOS". "PocketPC and CE" NOW READS: "PocketPC and Windows CE" (15) First paragraph, last line; "... Python code will be much less to write, debug, and maintain." NOW READS: "... Python code will be much less difficult to write, debug, and maintain." (21) 3rd paragraph; "Python.net" NOW READS "Python.NET" (as on page 22). (29) 2nd paragraph; "...type three Python statements into a text file named spam.py". NOW READS: "...type two Python statements into a text file named spam.py". (30) paragraph 7; "Finally, remember to give the full path to your script file if it lives a different directory ...." NOW READS: "Finally, remember to give the full path to your script file if it lives in a different directory ...." (38) First line on page; .. attribute title in other components two different ways. NOW READS: .. attribute title in other components in two different ways. (46) line 3; www.python.og NOW READS www.python.org (59) "Parentheses Group Subexpressions", line 5 and line 10; On line 5, "write one of the following to force Python evaluate" NOW READS: "write one of the following to force Python to evaluate" On line 10, "In the second cases" NOW READS "In the second case" (61) third text paragraph; "that's why the result are displayed ..." NOW READS: "that's why the result is displayed ..." (64) 3rd text paragraph; "In general, any code that depends on / truncating an integer result may be effected..." NOW READS: "In general, any code that depends on / truncating an integer result may be affected..." (67) 6th text paragraph; "This is covered in Chapter 4." NOW READS: "This is covered in Chapter 5." (72) 1st paragraph under "References and Garbage Collection"; "...Python also reclaims the old object, if it is not reference by any other name (or object)." NOW READS: "...Python also reclaims the old object, if it is not referenced by any other name (or object)." (80) 4th paragraph, last line; "Unicode is normlly used to ..." NOW READS: "Unicode is normally used to ..." (81) 2nd line after code; "hexidecimal" NOW READS: "hexadecimal" (82) code after first paragraph; In third comment, Repitition NOW READS Repetition. (83) 4th paragraph; "The first line defines a four-character string and assign it the name S." NOW READS: "The first line defines a four-character string and assigns it the name S." (84) 2nd line; "When you index a sequence object such as a string on a pair of offsets seperated by a colon..." NOW READS: "When you index a sequence object such as a string on a pair of offsets separated by a colon..." (88) "Advanced String Formatting", line 1; "... you can use any of conversion codes ...." NOW READS: "... you can use any of the conversion codes ...." (88) 5th line from bottom; %X X, but prints uppercase NOW READS: %X x, but prints uppercase (90) 3rd text paragraph; "See also the section "Numbers" in Chapter 4 for examples that convert to hexidecimal and octal strings with the %x and %o formatting target codes." NOW READS: "See also the section "Numbers" in Chapter 4 for examples that convert to hexadecimal and octal strings with the %x and %o formatting target codes." (94) Last line of first paragraph; 'basic text extraction cores.' NOW READS: 'basic text extraction chores.' (98) Table 6-1, the column2 entries; """ Index, slice, length """ NOW READS: """ Index, index of index, slice, length """ (99) 1st Paragraph, 2nd sentence For instance, the second row in Table 6-1 assigns variable L1 to a four-item list. NOW READS: For instance, the second row in Table 6-1 assigns variable L2 to a four-item list. page 105, Table 6-2, d3['food']['ham'] NOW READS: D3['food']['ham'] AND len(d1) NOW READS: len(D1) AND del d2[key] NOW READS: del D2[key] (106) First set of examples; >>> 'ham' in d3 NOW READS: >>> 'ham' in d2 (107) 4th paragraph,end of 2nd line: "blindly overwiting values" NOW READS: "blindly overwriting values" (113) Table 7-1, the column2 entries; """ Index, slice, length """ NOW READS: """ Index, index of index, slice, length """ (114) 2nd paragraph; "Many programmers also find that parenthesis tend to aid script readability." NOW READS: "Many programmers also find that parentheses tend to aid script readability." (125) 4th paragraph,in the second sentence: "exmaple" NOW READS: "example". (137) Table 8-3; In the list of Python reserved words, the keyword 'Is' NOW READS 'is' and the keyword 'lamda' NOW READS 'lambda' (137) footnote; "In the Jython Java-based implementation or Python, ..." NOW READS: "In the Jython Java-based implementation of Python, ..." (154) 2nd paragraph; "true of false" NOW READS: "true or false" (156) "Examples" section; first line; "here are a few of simple...." NOW READS: "here are a few simple. (164) "Loop Variations" section; paragraph 2; bullet 2; "... returns a list a ...." NOW READS: "... returns a list of ..." (169) end of 4th paragraph; Reference to "Chapter 11" NOW READS "Chapter 14" (173) first paragraph under Docstrings:__doc__, last line; ...known as a docsting, into the __doc__ attribute... NOW READS: ...known as a docstring, into the __doc__ attribute... (175) "Built-in docstrings" section; line 1; "It turns out that built modules ...." NOW READS: "It turns out that built-in modules ..." (182) 2nd paragraph; relevent NOW READS: relevant (194) 3rd paragraph; categoy NOW READS: category (206) mid page, on the right side; "in most cases, it is no longer necesary..." NOW READS: "in most cases, it is no longer necessary..." {215} Line 4, first line of output from running mins.py; The result of the statement print min1(3,4,1,2) from the previous page NOW READS "1" instead of "2" {401} Second code block; Missing ":" at the end of the except IndexError line HAS BEEN ADDED. {479} last line of code near the bottom of the page; apply(self.__init__, (self,) + args), kw) NOW READS: apply(self.__init__, (self,) + args, kw)