True of False
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Thu Sep 27 13:54:23 EDT 2007
On Thu, 27 Sep 2007 17:06:30 +0000, Duncan Booth wrote:
> Marc 'BlackJack' Rintsch <bj_666 at gmx.net> wrote:
>
>> In [268]: 'c' in a == True
>> Out[268]: False
>>
>> In [269]: ('c' in a) == True
>> Out[269]: True
>>
>> In [270]: 'c' in (a == True)
>> -----------------------------------------------------------------------
>> ----
>><type 'exceptions.TypeError'> Traceback (most recent call
>>last)
>>
>> /home/bj/<ipython console> in <module>()
>>
>><type 'exceptions.TypeError'>: argument of type 'bool' is not iterable
>>
>>
>> What's going on there?
>
> See http://docs.python.org/ref/comparisons.html
>
>> Comparisons can be chained arbitrarily, e.g., x < y <= z is equivalent
>> to x < y and y <= z, except that y is evaluated only once (but in both
>> cases z is not evaluated at all when x < y is found to be false).
>
> In exactly the same way:
>
> 'c' in a == True
>
> is equivalent to:
>
> 'c' in a and a == True
>
> which is False.
Aaah *enlightenment*, I'm using this for range checks like in the docs,
but it wasn't obvious to me in this case. Thanks.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list