A certainl part of an if() structure never gets executed.
Nick the Gr33k
support at superhost.gr
Fri Jun 14 04:03:20 EDT 2013
On 14/6/2013 4:14 πμ, Steven D'Aprano wrote:
> On Thu, 13 Jun 2013 17:26:18 +0300, Νικόλαος Κούρας wrote:
>
>> i just want 4 cases to examine so correct execute to be run:
>>
>> i'm reading and reading and reading this all over:
>>
>> if '-' not in ( name and month and year ):
>>
>> and i cant comprehend it.
>
> Don't just read it. Open the interactive interpreter and test it.
>
> name = "abcd"
> month = "efgh"
> year = "ijkl"
>
> print(name and month and year)
>
> If you run that, you will see what the result of
> (name and month and year) is. Now, ask yourself:
>
> "k" in (name and month and year)
>
> True or false? Check your answer:
>
> print("k" in (name and month and year))
>>> 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.
>>> print("k" in (name and month and year))
True
No clue. since the expression in parenthesis returns 'abcd' how can 'k'
contained within 'abcd' ?
>>> print(name and month and year)
ijkl
Seems here is returning the last string out of 3 strings, but have no
clue why Python doing this.
>>> print("k" in (name and month and year))
True
>>>
yes, since expression returns 'ijkl', then the in operator can detect
the 'k' character within the returned string.
--
What is now proved was at first only imagined!
More information about the Python-list
mailing list