evaluation of >

John Machin sjmachin at lexicon.net
Sun May 7 23:26:34 EDT 2006


On 8/05/2006 12:45 PM, Gary Wessle wrote:

> what does the i > a in this code mean. because the code below is
> giving False for all the iteration. isn't suppose to evaluate each
> value of i to the whole list? thanks

But that's EXACTLY what it's doing; each integer value named i is 
notionally being compared to the whole list value named a. However as 
the types differ (int vs list), it doesn't even look at the actual 
values. Each (rather meaningless) comparison evaluates to False.

Did you read section 5.9 (Comparisons) of the Reference Manual? Deep in 
the fine print, it says "objects of different types always compare 
unequal, and are ordered consistently but arbitrarily". The answers 
might have all been True.
> 
> a = range(8)
> i = 0
> while i < 11:
>     print i > a

The print statement is your friend. Use it more effectively.
       print i, a, i > a

>     i = i + 1
> 
> False
> False
[snip]
Perhaps if you tell us what you thought the code should do, and/or what 
you are investigating, or trying to achieve ....



More information about the Python-list mailing list