From the Python 2.7 documentation:
Objects of different types, except different numeric types and different string types, never compare equal; such objects are ordered consistently but arbitrarily (so that sorting a heterogeneous array yields a consistent result).
The Python 3.3 documentation has instead this:
The <, <=, > and >= operators will raise a TypeError exception when comparing a complex number with another built-in numeric type, when the objects are of different types that cannot be compared, or in other cases where there is no defined ordering.
Meaning what you are seeing is no longer possible as of Python 3, but instead such comparisons yield a TypeError
like you expected.