Py3K idea: why not drop the colon?

Steven D'Aprano steve at REMOVE.THIS.cybersource.com.au
Sat Nov 11 08:39:44 EST 2006


On Sat, 11 Nov 2006 01:13:03 -0600, Ron Adam wrote:

> Steven D'Aprano wrote:
>> On Fri, 10 Nov 2006 21:24:50 +0100, Bjoern Schliessmann wrote:
>> 
>>> Marc 'BlackJack' Rintsch wrote:
>>>
>>>> No it doesn't -- look again at the example given above.  It's
>>>> legal syntax in Python but doesn't have the semantics implied by
>>>> the example.
>>> Sorry, I don't understand -- what is the difference between the
>>> example as it is and the implied semantics of it?
>> 
>> Inform 6 "x == blue or red or yellow" is equivalent to the Python
>>  
>> x == blue or x == red or x == yellow
> 
> Maybe it should have been expressed as:
> 
>      x == (blue or red or yellow)


But that has very different semantics still -- since parentheses have the
highest priority, it means "evaluate (blue or red or yellow), then test if
x is equal to the result".

It might be useful on occasion to have a construct for "x equals blue or
red or yellow" in the sense used by normal English or Inform 6. And,
funnily enough, Python has such a construct. You just have to write "in"
instead of ==, and use a tuple for the terms:

x in (blue, red, yellow)

Not hard to remember, and unambiguous.


-- 
Steven.




More information about the Python-list mailing list