Eval of expr with 'or' and 'and' within

Grant Edwards invalid at invalid.invalid
Fri Jun 14 15:36:29 EDT 2013


On 2013-06-14, Nick the Gr33k <support at superhost.gr> wrote:
> On 14/6/2013 7:47 ????, Benjamin Kaplan wrote:
>   In an "and" clause,
>> python returns the first false value or the last value, because that
>> will evaluate to the correct Boolean value. In an "or" clause, python
>> returns the first true value or the last value. When Python finally got
>> a Boolean type, no one wanted to break backwards compatibility for this.
>
>
> This is exactly what i dont understand and thats why i keep asking and 
> people call me an idiot. I just dont understand why it behaves like that.
>
> Why return first or last value?

There are cases where it's useful not only to know wether an
expression was True or False, but _why_ it was true or false.

> because that will evaluate to the correct Boolean value ????

Yes.  All values in Pyton have a "truthness" and you can be guaranteed
that 

     if A or B or C:

will behave exactly the same way whether the "or" operator returns
True or it returns one of it's operands.  

-- 
Grant Edwards               grant.b.edwards        Yow! Where do your SOCKS
                                  at               go when you lose them in
                              gmail.com            th' WASHER?



More information about the Python-list mailing list