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

Reply via email to