jzakiya schrieb:
I'm translating a program in Python that has this IF Then chain


IF  x1 < limit:   --- do a ---
    IF  x2 < limit:  --- do b ---
        IF x3 < limit:  --- do c ---
                       .-----
                        ------
                    IF  x10 < limt: --- do j ---
                    THEN
                 THEN
              -----
          THEN
     THEN
THEN

In other words, as long as    'xi' is less than 'limit' keep going
down the chain, and when 'xi' isn't less than 'limit' jump to end of
chain a continue.

Is this the equivalence in Python?

 IF  x1 < limit:
        --- do a  ---
 elif x2 < limit:
        --- do b ---
 ----
 ----
 elif x10 < limit:
       --- do j ---

Of course not. After "do a", it would stop.

You need to use

if x1 < limit:
   do a
   if x2 < limit:
      do b
      ...


Alternatively, and depending on the nature of "do X", you can do

for x, todo in ((x1, do_a), (x2, do_b), ...):
    if x < limit:
       todo()
    else:
       break

This implies though that the "dos" are pure functions without (variable) arguments.

Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to