Statement evals as False in my IDE and True elsewhere

Peter Otten __peter__ at web.de
Thu Jan 30 17:14:57 EST 2014


CM wrote:

> This is puzzling.  (Using Python 2.5, WinXP, Boa Constructor 0.6.1
> definitely running the code through Python 2.5)
> 
> If I run these lines in my program, through my IDE (Boa Constructor),
> 
>     fake_data = ['n/a', 'n/a', 'n/a', 'n/a', '[omitted]', '12']
>     fake_result = not all(i == '[omitted]' for i in fake_data)
>     print 'This is fake result: ', fake_result
> 
> I get this result:
> 
>>>> 
> This is fake result:  False
> 
> BUT, if I run those *exact same lines* (copied and pasted) in the Python
> 2.5 shell within Boa Constructor, or with IDLE with Python 2.5, I get:
> 
>>>> 
> This is fake result:  True
> 
> ...which is what it seems like it should evaluate to, right?  What the
> heck is going on?  How is this even possible?  There is nothing that I
> know of in my code to cause this change, but perhaps there is.  Otherwise
> I am at a total loss.

Hint:

>>> def demo():
...     fake_data = ['n/a', 'n/a', 'n/a', 'n/a', '[omitted]', '12']
...     fake_result = not all(i == '[omitted]' for i in fake_data)
...     print 'This is fake result: ', fake_result
... 
>>> demo()
This is fake result:  True
>>> from numpy import all
>>> demo()
This is fake result:  False





More information about the Python-list mailing list