I am new to python. I have a few questions coming from an armature!

Steven D'Aprano steve+comp.lang.python at pearwood.info
Wed Aug 17 02:39:30 EDT 2016


On Wednesday 17 August 2016 06:59, Lawrence D’Oliveiro wrote:

> On Wednesday, August 17, 2016 at 6:46:22 AM UTC+12, alister wrote:
>> I don't think I am missing anything by not bothering with them YMMV
> 
> Here
> <http://ldo17.tumblr.com/post/17544419704/conditional-expressions-in-python>
> are some examples of that varying mileage.

Quote:

    The Python syntax for conditional expressions (introduced in Python 2.5) is

        trueval if cond else falseval 

    I think this is bloody awful. Why couldn’t they have adopted the standard C
    syntax, as used in a whole bunch of other C-derivative languages?

        cond ? trueval : falseval 



Because the C syntax is horrifically ugly, whereas the Python syntax is very 
close to real English syntax.

"What will you do tonight?"

"Go to the movies, if I finish work on time, otherwise just go home."

Every time you read the C syntax, you lose another three minutes off your 
lifespan. That's how ugly it is.

The background to the Python ternary operator is documented here:

https://www.python.org/dev/peps/pep-0308/


Rather than ask why Python uses `trueval if cond else falseval`, you should ask 
why C uses `cond ? trueval : falseval`. Is that documented anywhere?



-- 
Steve




More information about the Python-list mailing list