Wieso gibt Python das Falsche aus?

3 Antworten

Python gibt das richtige aus, denn

0 == False # evaluiert zu True

Um das zu erreichen, was Du willst, müsstest Du etwas machen wie:

if a == 0 and type(a) == type(0):

Das würde nur zu True evaluieren, wenn a gleich der Null ist und der Typ der gleiche ist.


Alex950130 
Beitragsersteller
 21.07.2024, 11:15

Danke euch... Ich habe es grad eben mit 1 versucht und realisiert, dass True == 1 auch stimmt, mit 2 hat es dann geklappt...

Hellöchen,

False == 0 ergibt True, du könntest zum Beispiel mit dem Type Operator checken, ob auch eine Übereinstimmung des Typs vorliegt.

Das funktioniert:

print(a == False and type(a) == type(False))

Grüße

Woher ich das weiß:Hobby – seit 2020 Erfahrung mit PHP, Laravel, Vue sowie Javsscript

Alex950130 
Beitragsersteller
 21.07.2024, 11:16

War mir echt eine Erleuchtung, vorallem weil ich es gerade eben mit 1 probiert habe und dann herausfand, dass 1 == True auch stimmt... Mit 2 hat es dann funktioniert.

False in Integer umgerechnet ist 0.


Alex950130 
Beitragsersteller
 21.07.2024, 11:14

Ich habe es danach mit 1 versucht und dann hat es immernoch nicht geklappt... Dann habe ich realisiert, dass True in Integer umgewandelt 1 ist... Als ich es mit 2 probiert habe, hat es geklappt, danke!

W00dp3ckr  21.07.2024, 11:15
@Alex950130

Aber Du merkst, wenn Du sowas in Programmen machst, sind die schwer zu lesen. Also entweder als Integer oder als Boolean verwenden, aber nicht mischen.