[Tutor] comparing strings

2011-02-23 Thread Edward Martinez

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?



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


Re: [Tutor] comparing strings

2011-02-23 Thread Edward Martinez

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'


   Hi,
  Thank you!. I better read on   ASCII and unicode and try a few using  
char() and ord().


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


Re: [Tutor] comparing strings

2011-02-24 Thread Edward Martinez

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