I'm coming from Tcl-world ...

Daniel Fackrell unlearned at DELETETHIS.learn2think.org
Tue Aug 6 19:15:29 CEST 2002

"Andreas Leitgeb" <Andreas.Leitgeb at siemens.at> wrote in message
news:slrnal016g.c05.Andreas.Leitgeb at pc7499.gud.siemens.at...
> Christos  TZOTZIOY  Georgiou <DLNXPEGFQVEB at spammotel.com> wrote:
> > [example snipped, because it turned out too trivial to convey the point]
> new example:
>    for (<init>; <cond-a>; <incr>) {
>        if (<cond-b>) {
>           try { // is C++, but doesn't matter
>              <code-a>
>              if (<cond-c>) continue;
>              <code-b>
>           } catch(...) {
>              <code-c>
>           }
>           <code-d>
>        } else {
>           <code-e>
>        }
>    }
> Python: ?
>   With some effort, one can surely craft equivalent code in Python,
>   but I bet it will become considerably longer, and likely you'll
>   have to repeat some of the code-blocks, or introduce new flag-variables.
> point taken ?

while <cond-a>:
    if <cond-b>:
            if <cond-c>:
        except (...):

It appears to translate in a rather straightforward manner to me.

If you are concerned about the lack of the i++ equivalent, then start the
loop one lower.  If you are also dependent on the side effect of i being one
greater at the end of the loop, increment it after the loop, but it seems
that such a case as that would be rather rare.

But in any case, I think the only code that might be repeated would be along
the lines of:

i += 1

, and then only if you are dependent on i being incremented at the end of
the loop.

Does that help at all?

Daniel Fackrell (unlearned at learn2think.org)
When we attempt the impossible, we can experience true growth.

More information about the Python-list mailing list