Wie funktioniert Python 2 zu vergleichen, string und int? Warum do-Listen zu vergleichen, da mehr als zahlen und Tupel größer als Listen?

Folgenden Ausschnitt versehen, der mit dem Ausgang (wie gesehen auf 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

Kann mir jemand erklären, warum die Ausgabe als solche?


Implementierungsdetails

  • Ist dieses Verhalten gerechtfertigt durch die Sprache-Skillung, oder ist es bis zu implementors?
  • Gibt es Unterschiede zwischen der großen Python-Implementierungen?
  • Gibt es Unterschiede zwischen den Versionen der Python-Sprache?
Der 3000 dups dieser Frage, eins hat eine Antwort, erklären warum - die Sprache wurde auf diese Weise entworfen (und warum wurde es neu gestaltet 3.x). Das ist nicht Teil dieser Frage, sondern ist Teil des viele der Fragen, die hier verlinkt sind.

InformationsquelleAutor polygenelubricants | 2010-07-17

Schreibe einen Kommentar