On 2010-09-18, AK <andrei....@gmail.com> wrote: > On 09/18/2010 06:56 PM, Seebs wrote: >> Basically, I can handle >> do x if y >> pretty well, but >> do x if y else z >> always breaks my parser.
>> So in English, I might say "I'll go to the store if I have time", but >> I'd rarely use "I'll go to the store if I have time, otherwise I'll send >> the house elf"; instead, I'd say "If I have time, I'll go to the store, >> otherwise I'll send the house elf." > I actually find the shorter version slightly more readable than full > version. I think in English you'd say it in one sentence and that to me > feels like it should vaguely correspond to one line in code (perhaps > split over more than one line but that'd be due to long var names or > complex operations, not inherently). I dunno, it always breaks my parser. The condition ends up between the two dependents, and that doesn't work for me. I can have conditions which are leading or trailing, but not infix. > It's a bit more readable to me because I can tell at a glance that a > single variable gets assigned a value based on a condition. With a > longer version it looks like something more complicated it going on, and > the eye has to look at all four lines and jump to another ident level. Ahh! I see. There's several variants that could be discussed. if condition: x = y else: x = z x = y if condition else z And then the one I'm used to from other languages: x = if condition then y else z The other thing, from my point of view, is an ambiguity with a common idiom I'm used to, again from other languages: x = y if condition If !condition, then nothing happens to x. So far as I can tell, that's a syntax error in Python -- I can't use postfix if to modify a sentence, because it's an expression thing. > By the way, it also looks far more readable in an editor where if and > else would be highlighted vs. all in plain colour. I use syntax coloring in programming languages precisely as often, and for precisely the same reasons, that I use it when writing in English. Which is to say, if such a feature exists, I turn it off immediately because it consistently distracts me from following the actual meaning of code. Syntax is the least part of the meaning of code; giving extra weight to syntax is pretty disruptive, IMHO. -s -- Copyright 2010, all wrongs reversed. Peter Seebach / usenet-nos...@seebs.net http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated! I am not speaking for my employer, although they do rent some of my opinions. -- http://mail.python.org/mailman/listinfo/python-list