Seite 1 von 1
Versteh ich nicht
Verfasst: Dienstag 8. Juni 2010, 09:23
von mzh
Ich wurde kürzlich darauf aufmerksam gemacht:
Code: Alles auswählen
>>> if range(2):
... print "hello"
... else:
... print "bye"
...
hello
>>> range(2) == True
False
Also mal ist range(2) 'True', mal 'False'?
Re: Versteh ich nicht
Verfasst: Dienstag 8. Juni 2010, 09:26
von cofi
Nein weder noch. `range(2)` ist eine nicht-leere Liste (bzw in Python 3 ein nicht-leerer Generator), evaluiert also zu `True`, ist aber nicht gleich `True`.
Edit: `if range(2)` kann man als `if bool(range(2))` lesen.
Re: Versteh ich nicht
Verfasst: Dienstag 8. Juni 2010, 09:54
von mzh
aha, ist ja nur ein kleines Detail aber irgendwie doch interessant.
Re: Versteh ich nicht
Verfasst: Dienstag 8. Juni 2010, 14:23
von hendrikS
Wenn auch die Antworten zu Deiner Problemstellung dem einen oder anderen helfen mag, finde ich nicht, dass man solche bei Codesnippets unterbringen sollte. Hier sollten doch eher kleine nützliche/interessante/wiederverwertbare Codestücke zum besten gegeben werden.
Re: Versteh ich nicht
Verfasst: Dienstag 8. Juni 2010, 16:32
von BlackJack
@hendrikS: Guter Hinweis -- hab's mal verschoben.
