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