question about True values

Chetan pandyacus.xspam at xspam.sbcglobal.net
Sun Oct 29 01:39:58 EST 2006


Georg Brandl <g.brandl-nospam at gmx.net> writes:

> Chetan wrote:
>>> Steven D'Aprano wrote:
>>> > On Sat, 28 Oct 2006 03:13:42 +0100, Steve Holden wrote:
>>>  >
>>> >>> Finally, while True/False is a good mental mapping for numeric comparisons,
>>> >>> take the following:
>>> >>>
>>> >>>  >>> if "Cliff is a pillar of the open source community":
>>> >>> ....	print "thank you"
>>> >>> .... else:
>>> >>> ....	print "bugger off"
>>> >>>
>>> >>> bugger off
>>> >>>
>>>
>>> First off, even though nobody has called me on it, this example really prints
>>> "thank you", not "bugger off".  I got confused in my cutting and pasting.
>>> Sorry about that.
>>>
>>>
>>> >>> Clearly this is not true.  (Google Cliff/Dyer open source: only 11 hits.),
>>> >>> but the string is *something* so the if block gets evaluated.
>>> >>>
>>> >>   >>> if "The above example was bollocks":
>>> >>   ...   print "You don't know what you are talking about"
>>> >>   ... else:
>>> >>   ...   print "Sorry: of course you are perfectly correct"
>>> >>   ...
>>> >> You don't know what you are talking about
>>> > Cliff is making a point about semantics, and he's absolutely correct about
>>> > it, although it is irrelevant since we're talking about two-value logic
>>> > not semantics.
>>> Cheers,
>>> Cliff
>>
>> I am joining after some network downtime here, so I seem to have missed what
>> the real issue here is. At the risk of being completely irrelevant to the
>> discussion here, I think it doesn't seem to be just about something or
>> nothing - is None something or nothing? It seems to be neither:
>
> If is, of course, nothing. You may have misunderstood the semantics of the
> "and" and "or" operators.

I have not. I just posted another message on the subject. All I am trying to
point out is that the "nothingness" evaluation does not occur at the level of
expressions. It is only when the expression is needed to make decisions about
control flow that this comes into picture. 

>>>>> None
>>>>> None and True
>>>>> None or True
>> True
>>>>> None and False
>>>>> None or False
>> False
>>>>> False or None
>>>>> False and None
>> False
>>>>> True and None
>>>>> True or None
>> True
>>>>> not None
>> True
>
> x and y     | x something | x nothing
> ---------------------------------------
> y something | y           | x
> y nothing   | y           | x
>
> x or y      | x something | x nothing
> ---------------------------------------
> y something | x           | y
> y nothing   | x           | y
>
>
> Georg



More information about the Python-list mailing list