(An Unofficial) Python Tutorial Wiki

putting the community back in "maintained by the community"

b00k

Major Suggestion: How about endorsing IDLE as the interpreter to work with on this tutorial? From my experience teaching Python, using IDLE makes learning easier and makes teaching more straightforward.

I may be biased (as an IDLE fan and developer) but trying to be objective, there are real advantages: 1. It comes with all Python distributions as part of the standard library, and is easy to find and run 2. Easily save an interactive session to a file or print it 3. Edit files in IDLE and execute them in the IDLE's shell with a hit of a button (F5 or Run->Run Module) - if IDLE is run with a subprocess, using this feature restarts the shell every time - this saves import headaches which are especially painful to new users, and simplifies the tutorial since we don't have to explain these issues early on 4. Interpreter with syntax coloring - saves frustration from syntax errors (you see when you don't close parenthesis or string quotes, or when your indentation is bad) + helps build good habits (i.e. not naming lists "list")

For example, see the comments for part 6 under Tutorial Structure - running Python from files can be explained very simply if the tutorial endorses using IDLE, so we can leave explaining modules for later.

TBH, as it is today IDLE still has a few quirks which can make working with it -slightly- awkward for a newbie. These range from minor quirks (highlighting bugs) to not-so-minor ones (can't open multiple instances which each have a subprocess, Run Module doesn't do anything without a subprocess because of singe import, major indentation bug). Still, these are just quirks, and they can all be easily solved. Actually, most have been solved in Idle-Spoon (a fork of the IDLE project), and these will probably get into the core Python version for 2.6.

Even with these quirks, I think explaining how to work with IDLE (and get around its quirks) will be beneficial. It will both allow the tutorial to start with basic concepts and leave technical issues for later, and give the learner a simple, clean, and friendly environment to learn in.

What do you say?