> When teaching Python to beginners and using IDLE, it seems that one of > the dangers would be to have them assigning variables in the > interactive mode and then maybe using them in a script they're > writing. Then, when they run the script, the variable is still in > memory so the program works--for now.
>> I run into this a lot, and I find that it's very very difficult to explain >> what's going on to kids who are just getting their feet wet. Not denying that RESTART vs. no-RESTART is an issue, but ... if you're going to use IDLE in no-RESTART mode, why not reinforce the functionality as a *feature*, not avoid it as a bug. The module window works more like a macro than a self-contained program. For example, a lesson might investigate the Fibonacci series like this: 1. In the interactive window, set up some initial conditions: >>> a=1 >>> b=1 >>> count=2 2. Develop the following command sequence, by trial-and-error in the interactive window, as the way to perform one Fibonacci iteration: >>> a,b = b,a+b >>> count = count+1 >>> print "Fibonacci term", count, "is", b >>> print "ratio is", 1.0*b/a During this trial-and-error process, it's very likely that the initial conditions will need to be reestablished a number of times. 3. Use the interactive window's command-repetition capability (move the cursor, then press Enter) to invoke the command sequence repeatedly, generating Fibonacci iterations. 4. Invoke "New Window" and transcribe the command sequence into the new module window: a,b = b,a+b count = count+1 print "Fibonacci term", count, "is", b print "ratio is", 1.0*b/a 5. (SLIGHT GOTCHA) You must save the contents of the new module window in a file. 6. Repeatedly invoke "Run Module", producing more iterations in the interactive window: >>> Fibonacci term 14 is 377 ratio is 1.61802575107 >>> Fibonacci term 15 is 610 ratio is 1.61803713528 >>> Fibonacci term 16 is 987 ratio is 1.61803278689 >>> Fibonacci term 17 is 1597 ratio is 1.61803444782 >>> Fibonacci term 18 is 2584 ratio is 1.6180338134 >>> Fibonacci term 19 is 4181 ratio is 1.61803405573 Each time you (click in the module window and) invoke "Run Module", the four lines of code run in the current context of the interactive window. And more: * Use this repeated invocation of code to motivate "for" and/or "while" loops. * Describe the Golden Mean and compare the (converging) computed ratios to the actual value. To compute the actual value, you must import the "math" module. Best to all, John _______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
