On 30/06/2013 19:53, Andrew Berg wrote:
On 2013.06.30 13:46, Andrew Z wrote:
Hello,

print max(-10, 10)
10
print max('-10', 10)
-10

My guess max converts string to number bye decoding each of the characters to 
it's ASCII equivalent?

Where can i read more on exactly how the situations like these are dealt with?
This behavior is fixed in Python 3:

max('10', 10)
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() > str()

Python is strongly typed, so it shouldn't magically convert something from one 
type to another.
Explicit is better than implicit.

It doesn't magically convert anyway.

In Python 2, comparing objects of different types like that gives a
consistent but arbitrary result: in this case, bytestrings ('str') are
greater than integers ('int'):

>>> max('-10', 10)
'-10'
>>> max('10', -10)
'10'

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to