Python IF THEN chain equivalence

M.-A. Lemburg mal at egenix.com
Thu Nov 13 17:48:34 EST 2008


On 2008-11-13 23:31, jzakiya wrote:
> On Nov 13, 5:21 pm, Alan Baljeu <alanbal... at yahoo.com> wrote:
>> I think you should rethink your post. The first case you posted makes no sense in any language I know.  Also, a whole lot of nested IF's is a bad idea in any language.  In Python, you will end up with code indented 40+ characters if you keep going.
>>
>> ----- Original Message ----
>> From: jzakiya <jzak... at mail.com>
>> To: python-l... at python.org
>> Sent: Thursday, November 13, 2008 5:06:53 PM
>> Subject: Python IF THEN chain equivalence
>>
>> 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 ---
>>
>> --http://mail.python.org/mailman/listinfo/python-list
>>
>>       __________________________________________________________________
>> Ask a question on any topic and get answers from real people. Go to Yahoo! Answers and share what you know athttp://ca.answers.yahoo.com
>>
>>
> 
> In the code the 'xi's and 'limit' are variables and the --- do letters
> ---
> phrases are simply writes to any array:   an_array[xi]=0
> 
> Actually, the code makes perfectly good sense, and is a necessity of
> the algorithm I'm implementing, and works perfectly good in Forth, and
> can be
> written quite nicely within a normal page width.
> 
> I was just hoping I could perform the equivalent chain in Python
> without
> having to grossly indent the source code past the normal width of a
> printed page.
> But if that's the only way to do it in Python, then so be it.

You should probably consider using a function and then
convert the conditions to define return points:

def do_something(...args...):

    if x1 >= limit:
        return
    ...do a...
    if x2 >= limit:
        return
    ...do b...
    etc.

That is provided I understand the flow of control in your
example... it's kind of strange to have THEN mark the *end*
of the then-branch in an if-then-else construct.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Nov 13 2008)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
2008-11-12: Released mxODBC Connect 0.9.3      http://python.egenix.com/

:::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611



More information about the Python-list mailing list