why only one ":" in a line ... ?

Jere Kahanpaa kahanpaa at gstar.astro.helsinki.fi
Mon Aug 19 14:09:16 EDT 2002


Hi.

Andreas Leitgeb <Andreas.Leitgeb at siemens.at> wrote:
> My motivation for this question:
> During porting some old c-code, that contained lots of simple blocks like:
>   while (cond1) { stmt; if (cond2) break; }
> these lines were simple enough, that their one-lined'ness did not
> obfuscate it, but rather made it more readable.

> In Python however, each of these phrases need to get expanded to  
>   *three* lines, because even the small "stmt" needs it's own line!
>   (I can't put it after the "while" nor in front of the "if")

Wouldn't this do the same think in one Pythonic line:

while (COND1 and not COND2): stmt

Of course, this is not the same in detail: if COND2 is false from the start, the 
Python version fails while the C version loops at least once. Wether this is good 
or bad depends on your real code.

>  I don't want to discuss the worth of putting something in one line,
>  what I could also break up into more lines. It's just that for
>  some blocks, I as a programmer would prefer them in one line.

> e.g.:
>  if 0<n<10: for i in range(n): print i
> this is invalid.
> but why is it invalid ?

Because it is less easy to read than the valid (2-line) version. At least IMO that 
is. 

*SNIP* 
several special case cut

As youself pointed out, allowing 'more stuff in one line' leads to complexity and 
thus is goes against the KISS (Keep It Simple, Stupid) rule.

> So what's so bad about "putting stuff in one line" ?

It's a matter of taste. If you don't like the limits of Python, use Perl.

Jere
-- 
It's hard to think outside the box when you ARE the box.
                            - unknown, alt.religion.kibology 



More information about the Python-list mailing list