On 02/24/11 02:56, Dave Angel wrote:
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
Thanks for the reply. i now understand that python uses either
ASCll or Unicode to compare and to do other things
Regards,
Edward
___
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor