diff --git a/about.html b/about.html index 79ec50b..3cc6b67 100644 --- a/about.html +++ b/about.html @@ -12,7 +12,7 @@ h1:before{content:""}

You are here: Home Dive Into Python 3

About the book

The text of Dive Into Python 3 is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. -

The chardet library referenced in Case study: porting chardet to Python 3 is licensed under the LGPL 2.1 or later. The alphametics solver referenced in Advanced Iterators is based on Raymond Hettinger's solver for Python 2, which he has graciously relicensed under the MIT license so I could port it to Python 3. Advanced Classes and Special Method Names contain snippets of code from the Python standard library which are released under the Python Software Foundation License version 2. All other example code is my original work and is licensed under the MIT license. Full licensing terms are included in each source code file. +

The chardet library referenced in Case study: porting chardet to Python 3 is licensed under the LGPL 2.1 or later. The alphametics solver referenced in Advanced Iterators is based on Raymond Hettinger's solver for Python 2, which he has graciously relicensed under the MIT license so I could port it to Python 3. Advanced Classes and Special Method Names contain snippets of code from the Python standard library which are released under the Python Software Foundation License version 2. All other example code is my original work and is licensed under the MIT license. Full licensing terms are included in each source code file.

The dynamic highlighting effects in the online edition are built on top of jQuery, which is dual-licensed under the MIT and GPL licenses.

The online edition loads as quickly as it does because

    @@ -22,7 +22,7 @@ h1:before{content:""}
  1. The text uses Unicode characters in place of graphics wherever possible.
  2. The entire book was lovingly hand-authored in HTML 5 to avoid markup cruft.
-

Send corrections and feedback to mark@diveintomark.org. +

Send corrections and feedback to mark@diveintomark.org.

© 2001–9 Mark Pilgrim diff --git a/advanced-iterators.html b/advanced-iterators.html index 62c2886..dca9dab 100644 --- a/advanced-iterators.html +++ b/advanced-iterators.html @@ -184,7 +184,7 @@ gen = ord_map(unique_characters)

Calculating Permutations… The Lazy Way!

-

First of all, what the heck are permutations? Permutations are a mathematical concept. (There are actually several definitions, depending on what kind of math you’re doing. Here I’m talking about combinatorics, but if that doesn’t mean anything to you, don’t worry about it. As always, Wikipedia is your friend.) +

First of all, what the heck are permutations? Permutations are a mathematical concept. (There are actually several definitions, depending on what kind of math you’re doing. Here I’m talking about combinatorics, but if that doesn’t mean anything to you, don’t worry about it. As always, Wikipedia is your friend.)

The idea is that you take a list of things (could be numbers, could be letters, could be dancing bears) and find all the possible ways to split them up into smaller lists. All the smaller lists have the same size, which can be as small as 1 and as large as the total number of items. Oh, and nothing can be repeated. Mathematicians say things like “let’s find the permutations of 3 different items taken 2 at a time,” which means you have a sequence of 3 items and you want to find all the possible ordered pairs. @@ -559,11 +559,11 @@ NameError: name '__import__' is not defined

Further Reading