Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)

 Barney Frank 07-28-2004 09:49 PM

Newbie question about formatting long conditionals

I am writing my first application using Python, and there are a
couple points in code at which I need a fairly complex if-else block.
I've discovered that you can nest compound conditions in parentheses, but
I haven't found a way to break a really complex if condition up into
multiple lines.

For example, take this little fake snippet:

#############
a = 1
b = 2
c = 3
d = 4

if a == 1 and b < 4 and (c == 2 or d == 4):
print "Conditions met!"
#############

... if the "if" condition gets too long and unweildy for a single
line, is there any way to format it along these lines?:

#############
a = 1
b = 2
c = 3
d = 4

if a == 1
and b < 4
and (c == 2 or d == 4):
print "Conditions met!"
#############

 James Henderson 07-28-2004 09:55 PM

Re: Newbie question about formatting long conditionals

Barney Frank wrote:

> I am writing my first application using Python, and there are a
> couple points in code at which I need a fairly complex if-else block.
> I've discovered that you can nest compound conditions in parentheses, but
> I haven't found a way to break a really complex if condition up into
> multiple lines.
>
> For example, take this little fake snippet:
>
> #############
> a = 1
> b = 2
> c = 3
> d = 4
>
> if a == 1 and b < 4 and (c == 2 or d == 4):
> print "Conditions met!"
> #############
>
>
>
> ... if the "if" condition gets too long and unweildy for a single
> line, is there any way to format it along these lines?:

Put the whole condition in parentheses:

if (a == 1 and
b < 4 and
etc.):

HTH,
James

 Grant Edwards 07-28-2004 09:59 PM

Re: Newbie question about formatting long conditionals

> ... if the "if" condition gets too long and unweildy for a single
> line, is there any way to format it along these lines?:
>
> #############
> a = 1
> b = 2
> c = 3
> d = 4
>
> if a == 1
> and b < 4
> and (c == 2 or d == 4):
> print "Conditions met!"
> #############

if a == 1 \
and b < 4 \
and (c == 2 or d == 4):
print "Conditions met!"

if (a == 1
and b < 4
and (c == 2 or d == 4)):
print "Conditions met!"

--
Grant Edwards grante Yow! One FISHWICH coming
at up!!
visi.com

 anton muhin 07-29-2004 10:04 AM

Re: Newbie question about formatting long conditionals

Barney Frank wrote:
> I am writing my first application using Python, and there are a
> couple points in code at which I need a fairly complex if-else block.
> I've discovered that you can nest compound conditions in parentheses, but
> I haven't found a way to break a really complex if condition up into
> multiple lines.
>
> For example, take this little fake snippet:
>
> #############
> a = 1
> b = 2
> c = 3
> d = 4
>
> if a == 1 and b < 4 and (c == 2 or d == 4):
> print "Conditions met!"
> #############
>
>
>
> ... if the "if" condition gets too long and unweildy for a single
> line, is there any way to format it along these lines?:
>
> #############
> a = 1
> b = 2
> c = 3
> d = 4
>
> if a == 1
> and b < 4
> and (c == 2 or d == 4):
> print "Conditions met!"
> #############
>
>

I personally prefer to introduce additional variables (in all the
languages I write) that _explain_ what precisly the condition mean:

isTheWorldGoingToBlow = (a == 1) and (b < 4) ....

if isTheWorldGoingToBlow:

The reason is simple: usually such a long conditions are too complicated
for a human to understand without additional hint.

Just my 5 kopecks :),
anton.

 All times are GMT. The time now is 12:32 PM.