Versteh ich nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

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'?
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

aha, ist ja nur ein kleines Detail aber irgendwie doch interessant.
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

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.
BlackJack

@hendrikS: Guter Hinweis -- hab's mal verschoben. :-)
Antworten