Seite 1 von 1
if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 18:17
von bricktop
Hallo,
wie kommt es dass man zB in einer String Suche
schreiben muss:
if string.find("test") >= 0:
?
Denn so funktioniert es scheinbar nicht:
if string.find("test") > 0:
Ich benutze Python 2.7. Ist das ein Bug?
Re: if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 18:23
von lunar
@bricktop Nein, das ist kein Bug. Es ist ziemlich offensichtlich, dass die zweite Variante nicht das gewünschte Ergebnis liefert, und warum das so ist.
Zur Prüfung, ob eine Zeichenkette in einer anderen vorkommt, gibt es in Python den "in"-Operator:
Code: Alles auswählen
>>> 'Hallo' in 'Hallo Welt'
True
>>> 'Hi' in 'Hallo Welt'
False
Re: if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 18:50
von bricktop
lunar hat geschrieben:Es ist ziemlich offensichtlich, dass die zweite Variante nicht das gewünschte Ergebnis liefert
Also für mich ist es irgendwie nicht ersichtlich. Warum sollte Variante 2 denn falsch sein?
Re: if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 18:58
von lunar
@bricktop
Code: Alles auswählen
>>> 'Hallo Welt'.find('Hallo') > 0
False
>>> 'Hallo Welt'.find('Hallo')
0
Re: if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 19:21
von bricktop
lunar hat geschrieben:@bricktop
Also dann gibt der Find-Befehl ein 0 zurück wenn es gefunden wurde und -1 bei keinem Fund oder wie?
Re: if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 19:24
von cofi
Die Semantik von Operationen zu erraten ist ein denkbar schlechter Weg ...
Schau doch mal was die Dokumentation sagt:
http://docs.python.org/library/stdtypes.html#str.find
Re: if abfrage mit >= 0 ?
Verfasst: Samstag 8. September 2012, 22:10
von 0815
probier es doch mal mit
Code: Alles auswählen
import re
x="Hallo Welt"
if re.search('Welt',x): print "Gefunden;)"
Re: if abfrage mit >= 0 ?
Verfasst: Sonntag 9. September 2012, 09:47
von BlackJack
@0815: Wie man es machen würde wurde doch gezeigt: der ``in``-Operator. Warum sollte man um eine statische Zeichenkette zu finden so etwas überdimensioniertes wie reguläre Ausdrücke bemühen‽
Re: if abfrage mit >= 0 ?
Verfasst: Sonntag 9. September 2012, 11:03
von Dav1d
BlackJack hat geschrieben:@0815: Wie man es machen würde wurde doch gezeigt: der ``in``-Operator. Warum sollte man um eine statische Zeichenkette zu finden so etwas überdimensioniertes wie reguläre Ausdrücke bemühen‽
Dann wäre die Lösung ja nicht "0815"
