Warum ist "5 == float(5)" true ?
Wenn ich float(5) schreibe wird 5.0 ausgegeben => "5 == 5.0" ist ebenfalls true.
Typenvergleich per float() oder int()
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi MacEvil,
weil 5 gleich 5.0 ist
Es werden nicht die Typen sondern die Werte verglichen. Du kannst Dir aber eine einfache Funktion schreiben die auch die Typen vergleicht.
Gruß
Dookie
weil 5 gleich 5.0 ist

Es werden nicht die Typen sondern die Werte verglichen. Du kannst Dir aber eine einfache Funktion schreiben die auch die Typen vergleicht.
Code: Alles auswählen
def is_same(a,b):
return a == b and type(a) == type(b)
Dookie
Ok, ich habe es bereits selber gefunden.
5 == float(5) ist true
5 is float(5) ist false
Der Vergleich mit "is" fuehrt zum Ziel
Edit : Oh, da hat ja der Dookie gleich geantwortet. Das mit dem type ist auch interessant
5 == float(5) ist true
5 is float(5) ist false
Der Vergleich mit "is" fuehrt zum Ziel
Edit : Oh, da hat ja der Dookie gleich geantwortet. Das mit dem type ist auch interessant

Möge die Python-Community gedeihen
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Vorsicht!!!
is vergleicht die Identität der Instanzen. Da Python kleine Werte (in Version 2.3) von -5 bis 100 intern in einer Liste speichert, bringt Dein Vergleich nur in diesem Bereich das erwartete Ergebnis.
Gruß
Dookie
is vergleicht die Identität der Instanzen. Da Python kleine Werte (in Version 2.3) von -5 bis 100 intern in einer Liste speichert, bringt Dein Vergleich nur in diesem Bereich das erwartete Ergebnis.
Code: Alles auswählen
>>> a = -6
>>> b = -6
>>> print a is b
False
Gruß
Dookie
Ja, das ist allerdings so, zum Glueck wusste ich es schon, dass is nur die Identitaet vergleicht, aber fuer Leser, die zbsp. ueber die Suchmaschine hierherkommen ist es ganz wichtig. Ich hatte nicht daran gedacht es zu erwaehnen
Auch n' Gruss
Auch n' Gruss
Möge die Python-Community gedeihen