On 01/-10/-28163 02:59 PM, Edward Martinez wrote:
On 02/23/11 19:29, Corey Richardson wrote:
On 02/23/2011 10:22 PM, Edward Martinez wrote:
Hi,

I'm new to the list and programming.
i have a question, why when i evaluate strings ie 'a'> '3' it reports
true, how does python come up with that?
Welcome! As far as I know, it compares the value of the ord()'s.

ord('a')
97
ord('3')
51

This is their number in the ASCII system. You can also do this:

chr(97)
'a'
chr(51)
'3'


A string is effectively an array of characters. Each one may be ASCII or Unicode or other, depending partly on your Python version.

Each character has an ord() between 0 and 255, or between 0 and 65535. Except for some values below 0x20 (eg. tab, newline), these are printable. So you can make a chart for your own system with a fairly simple loop.

Comparison is done left to right on the two strings, comparing one character at a time. If there are no control characters, this approximates what a dictionary order would do. But notice that all the capital letters appear before any of the lowercase characters. And that if you have accented characters, they're generally nowhere near the unaccented versions.

One other point: if one string begins with all the characters in the other (eg. 'cat' and 'catatonic'), the longer string is then considered "greater".

DaveA


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to