Eval of expr with 'or' and 'and' within
Nick the Gr33k
support at superhost.gr
Fri Jun 14 11:16:05 EDT 2013
On 14/6/2013 5:49 μμ, Grant Edwards wrote:
> On 2013-06-14, Nick the Gr33k <support at superhost.gr> wrote:
>
>> I started another thread
>
> no kidding.
>
>> because the last one was !@#$'ed up by irrelevant replies and was
>> difficult to jeep track.
>>
>>>>> name="abcd"
>>>>> month="efgh"
>>>>> year="ijkl"
>>
>>>>> print(name or month or year)
>> abcd
>>
>> Can understand that, it takes the first string out of the 3 strings
>> that has a truthy value.
>
> Yes, it does. That's the way the language is defined to work. If you
> don't like it, pick a different language.
I can understand OR stops at the first value when it finds it truthy,
and doesn't care for the other expr parameters.
And that logical since we say:
(name or month or year)
is like saying:
print whatever of those 3 are True, at least 1 of them, if it doesn't
not find any though for some reason it defaults to the last variable of
the expression(another mystery for me)
the way i realize it is just that for this boolean evaluation of the
expression to result in True if any of the above vars holds a truthy value.
Nice try, moving me to another newsgroup list :)
>>>>> print("k" in (name and month and year))
>> True
>>
>> No clue. since the expression in parenthesis returns 'abcd'
>
> No it doesn't. Try it:
>
> Python 2.7.3 (default, Mar 20 2013, 14:16:24)
> [GCC 4.6.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>
>>>> name="abcd"
>>>> month="efgh"
>>>> year="ijkl"
>>>>
>>>> "k" in (name and month and year)
> True
>>>> (name and month and year)
> 'ijkl'
>>>>
>
>> how can 'k' contained within 'abcd' ?
Um sorry was a typo.
I mean the expr eval results in the value of var year which is 'ijkl'.
>>>> "k" in (name and month and year)
> True
So yes it does.
My question is why the expr (name and month and year) result in the
value of the last variable whic is variable year?
I cannot understand AND.
Isn't it like saying that:
(name and month and year)
all of these variables have to have truthy values so for the boolaean
eval of the expr result in True?
--
What is now proved was at first only imagined!
More information about the Python-list
mailing list