hi guys, so I've been running through Alan's code, and for a while I suspected that the try block must be the first line of code after the loop in order to be executed. The reason I say this is I wanted to see for myself Alan's assertion that the continue skips to the next iteration, instead of continuing with the rest of the try block, so I did the following:
def f(): if error: raise ValueError else: print "I'm in f()" def g(): print "I'm in g()" def h(): error = True print "error is: ", error n = 5 while n: print "n is: ", n n -= 1 try: f() g() except ValueError: error = False continue and I got the following as output: >>> h() error is: True n is: 5 n is: 4 n is: 3 n is: 2 n is: 1 I gathered that since I didn't see the output of f() and g(), then those two functions must have never executed, and thus the try block must have never executed. However, when I moved the try block to be the first line after the loop: def h(): error = True print "error is: ", error n = 5 while n: try: f() g() except ValueError: error = False continue print "n is: ", n n -= 1 I got the following as output: >>> h() error is: True Traceback (most recent call last): File "<pyshell#365>", line 1, in -toplevel- h() File "<pyshell#364>", line 9, in h except ValueError: KeyboardInterrupt and I actually had to press Ctrl-C to stop the never terminating program. I simply wanted to confirm Alan's assertion that continue will cause the loop to skip to the next iteration, but it seems I can't seem to get my f() and g() to print even though they were able to before. Am I doing something wrong ? _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor