Index of /class

Python training package, Version 2.7-3.5, July 2016.
This is README.txt, the class material's top-level user guide.
Author/Instructor: Mark Lutz,

This package contains the class workbook in HTML format, Python 
installers, and extra examples.  It is available both on CD or 
USB stick, and on the Web at
The web version is identical to that on CDs or USB stick, but 
has no Python installers (get these from
or ebook copies (get these in your CD/USB distribution). 


To view the class workbook in your web browser...

    CD/USB users:
        1) Navigate to the CD/USB's top-level contents from Computer.
        2) Click on the file named CLICK-TO-OPEN-WORKBOOK.htm.
           This shortcut opens file index.htm in the Workbook folder.

    Web users:
        1) Open the class page at "".
        2) Click either the Workbook folder or CLICK-TO-OPEN-WORKBOOK.htm.
           Or, open "" directly.

To install Python, if needed...

    CD/USB users:
        Consult the file README.txt in the top-level Python folder.  
        On Windows: simply double-click on the self-installer program 
        described there -- for instance, to install Python 3.5, click 
        to run "Python\Python-3.5\Install\Windows\python-3.5.0.exe".
        Python 2.7's installer is a clickable ".msi" file.

    Web users:
        Consult "",
        and fetch and run the Python installers from Python's website
        at "" (e.g., python-3.5.0.exe).

As of October 2015, the class workbook should render well in any web 
browser; Internet Explorer is no longer preferred.  Specifically, the 
workbook has been verified on Firefox, Chrome, Opera, Internet Explorer,
and Edge.  Safari is untested, but Firefox and Chrome are also available
on Macs as a fallback option.

Be sure to see Extras\PyRef5E-Ebook for a free ebook copy of "Python 
Pocket Reference, 5th Edition", a supplemental text [as of July, 2016,
this ebook is in the CD and USB versions of the workbook, but not in the 
online version], and please ask the instructor if you need any assistance
using this package.

Update/caveat: as of 2019, the class workbook document is not mobile-browser
friendly, and probably never will be.  It was generated by MS-Word years ago, 
and its HTML is difficult to mobilize manually.  Please consider viewing the 
workbook on your desktop browser, and accept this site's apologies for any 
usage issues if you don't.


DETAILS (optional reading from this point forward)


1) For users of the new online Web version of the workbook, any "CD" 
here mean the class Web site, and Python installers must be fetched.  
See web-README.txt here for online version usage notes/links.  As of
2015, the "CD"s may also refer to the new USB flashdrive distribution.

2) See the revisions log at the end of this file for updates made to 
this package.

3) Python versions note: The class workbook is based on both Python 
2.X and 3.X today; we will discuss how they differ along the way.  
See the "README.txt" file in the "Python" folder here and the Workbook's
Preface for more details on which version to use for the class.


This package contains the Python class workbook material in HTML format
for viewing with a web browser (e.g., Internet Explorer, Chrome, Firefox).  
Everything related to the class is included in this HTML distribution.  
In general, here is what you will find on this CD:

- The class workbook in HTML form
- Source code files for class examples and lab exercises
- Lab solutions, with source code
- Python interpreter distributions: Windows, Mac, source code
- Extra Python examples from various Python books and more
- The PP3E book's 2.X examples distribution package
- The PP4E book's 3.X examples distribution package
- Ebook copy of book "Python Pocket Reference, 5th Edition" (CD/USB only)


   This file.

   All the class material as HTML -- file "Workbook\index.htm" is the 
   root page (view in a web browser).  The is the HTML version of the
   class workbook, and is equivalent to the original paper workbook.  
   This may look best in Internet Explorer, but any browser will do
   (update: as of 09/2015, all IE-specific formatting has been removed).
   This folder also has example and exercise source code (see below).

   The latest Python interpreter releases for Windows, Macs, and Linux,
   including the Python manuals and source distribution.  See the 
   workbook's Preface for notes on the 3.X/2.X version choice.

   Extra program examples that don't appear in the workbook but are 
   sometimes covered in the class based upon interest.  The HTML 
   workbook has hyperlinks to some examples here.  Also included as
   larger program examples: the examples distribution packages from 
   the 3rd and 4th editions of the book Programming Python, plus a
   calendar GUI and folder synch tool (see frigcal-mergeall), and an
   ebook copy of the book "Python Pocket Reference" (in the CD/USB
   workbook distributions, but not in the online version).

The Workbook folder includes the workbook itself (file index.htm),
as well as source files for the lecture examples (folder Examples) 
and lab exercises solutions (folder Exercises).  All items are 
associated with HTML hyperlinks in the workbook.  

The HTML format workbook here may be viewed with most web browsers,
but Internet Explorer is generally recommended, as the HTML was 
generated by MS Word (diagrams and bullets may render oddly in other 
  => Update: as of 10/2015, IE-specific formatting has been 
     removed, and IE is no longer required or preferred.

You may view the workbook and its examples on CD, USB, or the web 
site directly, but some machines may run faster if you copy the 
workbook material to the local hard drive via drag-and-drop (web
users: fetch the ZIP file at the website and unzip to copy locally).

Some of the text files on the CD may be in MS-DOS end-of-line format.
You probably don't need to care as most editors handle the difference,
and it doesn't matter for the HTML files.  If you must convert, though,
try running the files through a UNIX utility like 'dos2unix'; a 'find' 
script can convert all the text files at once.  For instance:

    # pick your converter: fromdos/todos {}, dos2unix/unix2dos,...
    find ./Workbook/Examples -type f -print -exec dos2unix {} {} \;

You can also do this in just a few lines of Python code (e.g., by 
passing eoln format arguments to the 3.X open() call for input and 
output), but you must know some Python to do so.



1.1: (11/99) Moved Workbook.tar.gz off to Tools; copying the Workbook 
     directory is fast for most cases, so the tar file isn't critical.  
     Also updated this file, added new fixeoln*.py converters to Tools, 
     and created the CD label.  Each student will get a CD now, so 
     copying is not required (you can browse directly off the CD).

1.2: (2/00) Updated HTML workbook to incorporate about a dozen minor
     changes made to the paper workbook material in Feb 2000 (updated
     book and user lists; added new ftp, email, thread, os.path, and
     spawnv examples).  Also fixed some old all-upper-case module and
     directory names to be lower case, so they work on Linux/UNIX (see
     the new script Tools/ for details).  This makes the
     CD and source disk more UNIX-friendly--case matters when importing
     modules in Python.

1.3: (12/00) Added top-level Extras directory with supplemental examples;
     added Python2.0 Windows self-installer to Python directory.  Renamed
     old top-level "Html" directory to "Workbook".

1.4: (01/01) Massive updates for latest Python release features, emerging
     Python application domains, topics commonly discussed in classes, etc.
     The last part of this workbook now more closely shadows Programming
     Python 2nd Edition (to be published March, 2001).  Also added other 
     Python 2.0 distribution packages (source, Win, Linux, Mac).

1.5: (04/01) Added new Python2.1 release files (docs, Windows installer);
     code change to make a SMTP email example more robust; added a beta
     release of Pippy in Extras--Python for the Palm.

1.6: (11/01) Added new Python2.1.1 release files (Windows installer, 
     source distribution, Linux RPMs, etc.).

1.7: (01/02) Added new Python2.2 release files (Windows installer, 
     source distribution, Linux RPMs, etc.).  Added XML and XML-RPC
     examples in Extras\Xml.

2.0: (02/03) Massive overhaul: Updated for Python changes and new 
     topics presented in recently held classes.  Roughly in synch
     with the 2nd Edition of the book Learning Python now.  Also 
     added wxPython.doc in Extras\Gui (alternative GUI API).

2.1: (10/03): Added Python\Python2.3 folder, containing the newest Python
     release.  Please install from this folder, not Python2.2, unless
     you have unique requirements.  Also added ZaurusPython in the
     new Python2.3 folder--Python for the Zaurus Linux-based PDA.

2.4.0 (12/04) Added Python 2.4 installers.  Also changed CD (and
      workbook) numbering scheme to reflect the version of Python
      included.  For example, 2.4.0 is the first version of the CD
      containing Python 2.4; 2.4.1 will be the first revision that
      contains Python 2.4.

2.4.1 (03/05) Updated and revised the class workbook (paper and HTML
      versions) for recent changes in Python and class presentation.
      Added some Tkinter support for Mac OS X Aqua, and latest SWIG.

2.5.0 (10/06) Added Python 2.5 installers, updated workbook material
      for Python and training class changes, added printable workbook
      in Tools/Workbook.pdf, and added PP3E-Examples with examples
      from the book Programming Python 3rd Edition.  Most of the 
      scripts in Tools were moved to its Scripts directory.  See 
      Tools\changes2.5.txt for a longer list of changes applied.

2.5.1 (02/07) Integrated a handful of minor changes and updates in
      Workbook material, and added latest PP3E-Examples release.
      See Tools\changes2.5.txt for more details.

2.6.0 (01/09) Added Python 2.6 and Python 3.0 Windows installers
      and source code packages in the Python folder.  For more 
      details on 2.6 and 3.0, please visit this web page:

2.6.1 (05/09) Added Python 3.1 alpha 2 release.  Added a new
      Advanced Topics section, with new coverage of Unicode text,
      decorators, metaclasses, properties and descriptors, context
      managers, and Python 3.0 changes (from the upcoming book
      Learning Python 4th Edition).  Moved XML parsing from 
      Internet to Text sections and added new examples for it.

2.6.1 (06/09) Added Python 3.1 official release (and removed the 
      3.1 alpha release from the CD).

2.6.2 (03/10) Added new system examples for the subprocess and 
      multiprocessing modules, as well as IPC tools such as pipes
      and sockets (from the upcoming book Programming Python 4th
      Edition).  Also added Python 3.1 source code package, for 
      building on Cygwin, and move 3.0 to the "Old" folder. 

2.7.1 (01/11) Added windows installers for Python 2.7 and 3.2.
2.7.2 Also added notes about PP4E's 3.X-based examples available
      online at  

2.7.3 (02/11) Added Python 3.2. final, along with extra 2.7 install
      packages.  Moved top-level PP3E-Examples to the Extras folder, 
      and added a new PP4E-Examples with the newer 4th edition's 
      example code (PP3E uses Python 2.X, and PP4E uses Python 3.X).
      Also moved the now-unused top-level Tools folder to Extras;
      probably could delete, but it still has printable workbooks. 
      March: added and NumericOverview.htm (Unit 3/4).

2.7.3 (07/12) Updated parts of the Preface and Unit 1 (general intro) 
      sections to be more current in /Workbook.  Grabbed the latest 
      Python Windows installers (versions 2.7.3, 3.2.3, and 3.3 beta1) 
      in /Python, and the newer 1.3.1 PP4E book examples zip in /Extras.
      Fixed some directory name case mismatches in HTML links for Unix.
      Online Web version created -- its /Python_web has no installers.

2.7.3 (09/12) Added the 3.3.0 release candidate 1 Windows installers,
      replacing the earlier beta releases here; the final 3.3.0 release
      is now set for September 22 at

2.7-3.3 (10/12) Added the 3.3.0 final release: Windows and Mac 
      installers, plus source distribution.  Changed CD's naming
      scheme to reflect both Python versions included: 2.7-3.3.
      Added the stand-alone version of the new Windows launcher 
      that's installed with 3.3, for use in other versions.  Also 
      added PortablePython, a distribution that runs off a USB drive,
      the stand-alone Windows launcher for Pythons < 3.3, and PyPy,
      a faster CPython 2.X with a JIT (see Python/extras)  

2.7.5/3.3.2 (10/13): Python 3.3.2 and 2.7.5 installers, Pillow (PIL),
      various new materials from new Learning Python, 5th Edition:
      MRO, super(), formal inheritance, 3.3 namespace packages, etc. 

2.7-3.4 (06/15-07/15): Add latest Python 3.4 and 2.7.10 installers, 
      general updates throughout, free PyRef5E ebook copy in Extras,
      frigcal-mergeall suggested self-study examples in Extras.

2.7-3.5 (10/15): Python 3.5 installers, and numerous workbook updates 
      to reflect Python changes and current class coverage and flow.
      Translated all drawn FIGURES to embedded PNG files, so they work
      on all browsers (not just Internet Explorer).  Figure files are in 
      Workbook\Etc, which also now has other workbook-related files.
      Reformatted all BULLETS and SYMBOLS to render properly in Firefox 
      (using standard fonts, not wingdings or other).  The combined 
      result is that the bullets should now render well in all browsers.  

      Retook some very dated SCREENSHOTS on XP and Netscape (but a few
      were spared for their historical value; this workbook dates back to
      mid-1997 and Python 1.4, which affords it some rare context).

      Updated some examples and content to be more 3.X-FOCUSED, though
      there is still much 2.X-biased material; the differences are minor,
      and students should be able to translate very early in the class. 

      Updated links to my book web site: thanks to an ISP outage, after 
      2 decades it's finally moved from on earthlink,
      to a godaddy server at

      July 2016: assorted minor edits.  Also removed the ebook copies 
      of Python Pocket Reference in the online distribution only (in order
      to make the workbook public; find these on the CD or USB versions),
      and the old file (replaced with search query links).

      October 2016: released on the web for general-audience usage.