Why does 4 < \'3\' return True in Python 2?
Is it because when I place single quotes around a number Python sees it as a string and stri
Yes, any number will be less than any string (including the empty string) in Python 2.
In Python 3, you can't make arbitrary comparisons. You'll get a TypeError.
From the link in eryksun's comment:
if (PyNumber_Check(v))
vname = "";
else
vname = v->ob_type->tp_name;
if (PyNumber_Check(w))
wname = "";
else
wname = w->ob_type->tp_name;
c = strcmp(vname, wname);
So at least in recent versions of CPython 2.x, type names are compared, with an empty string used instead of the type name for any numeric type.