The following snippet is annotated with the output (as seen on ideone.com):
print "100" < "2" # True
print "5" > "9" # False
print "100" < 2 # False
print 100 < "2" # True
print 5 > "9" # False
print "5" > 9 # True
print [] > float('inf') # True
print () > [] # True
Can someone explain why the output is as such?
Implementation details
- Is this behavior mandated by the language spec, or is it up to implementors?
- Are there differences between any of the major Python implementations?
- Are there differences between versions of the Python language?