Simple Python question for some

Mark Lawrence breamoreboy at yahoo.co.uk
Sun Oct 28 20:09:07 EDT 2012


On 28/10/2012 23:51, Mark L. Hotz wrote:
> I have what I think should be a relatively simple question for someone who
> is knowledgeable about Python.

Sorry you've come to the wrong place :)

>
> At the IDLE prompt, when I enter "b" > 99, it responds True. In fact, it
> doesn't matter which number is entered here, "b" is always greater (e.g. "b"
>> 1 == True; "b" > 100000 == True, or "b" < 99 = False).
>
> Why is this true?  If I use ord("b") it returns 98, so Python cannot be
> using the ASCII or Unicode value when interpreting "b" > 99.  When I sort a
> mixed list using Python, and the list contains "b" among a series of numeric
> values, "b" is always sorted as last, indicating that it has a value greater
> than the highest number?
>
> How do I prove that "b" is greater than any number?  Or is it something very
> simple, and Python simply orders characters after numbers, or perhaps Python
> only interprets numbers like 99 as a 9 (i.e. ord("9") == 57)?
>
> Thank you.
>

The behaviour of Python between version 2 and 3 has been changed hence.

Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit 
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> 'b' > 99
True

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> 'b' > 99
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()

-- 
Cheers.

Mark Lawrence.




More information about the Python-list mailing list