Seite 1 von 1
string in string Frage
Verfasst: Montag 2. Mai 2005, 19:17
von Viel
Hi!
Ich benutze Python 2.4.1 auf Windows2000.
Code: Alles auswählen
str = 'viel.mp3'
print '.mp3' in str # ist True
if '.mp3' in str == True:
print 'das müsste ausgegeben werden'
test = '.mp3' in str
if test == True:
print 'das wird ausgegeben!(wie ich dachte)'
Warum funktioniert das erste if statement nicht?
Laut Doku müsste das seit 2.3 funktionieren.
PS: Super das man sich nicht registrieren muss um zu posten!
Verfasst: Montag 2. Mai 2005, 19:45
von CM
Hi,
vorweg: Versuche möglichst keine Schlüsselwörter als Variabelnamen zu verwenden. Wie Dir von Syntaxhighlighting angezeigt wird ist "str" bereits vergeben.
Zu Deiner Frage:
Gib mal folgendes ein:
Code: Alles auswählen
>>> s = 'viel.mp3'
>>> '.mp3' in s == True
False
>>> #aber:
>>> ('.mp3' in s) == True
True
>>> #oder, schlicht und einfach:
>>> if '.mp3' in s: #gerade gesehen, dass 'True'
... print 'jupp!'
jupp!
Na, alles klar? Du mußt Python schon sagen, was wie evaluiert werden soll. Also entweder Klammern setzten, damit EIN Ausdruck links von == mit dem rechts verglichen werden kann oder Python wird "'.mp3' in s" mit True vergleichen und das stimmt so halt nicht ...
Gruß,
Christian
Verfasst: Montag 2. Mai 2005, 20:03
von Viel
Jo jetzt ist mir klar!
Mir ist auch gerade aufgefallen das == True/False in if statments überflüssig ist.
Danke Viel
Re: string in string Frage
Verfasst: Montag 2. Mai 2005, 20:25
von Leonidas
Viel hat geschrieben:if '.mp3' in str == True:
print 'das müsste ausgegeben werden'
[/python]
So kompliziert muss es auch gar nicht sein, denn if prüft immer, ob die Bedingung wahr ist.
Code: Alles auswählen
s = 'viel.mp3'
# erstmal dein Code, korrigiert
if ('.mp3' in s) == True:
print 'Ist drin'
# und jetzt nochmal, einfacher
if '.mp3' in s:
print 'Ist drin'
Und sonst halt das Posting von CM lesen, die Erklärung ist sehr gut.