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?
if abfrage mit >= 0 ?
@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:
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
@bricktop
Code: Alles auswählen
>>> 'Hallo Welt'.find('Hallo') > 0
False
>>> 'Hallo Welt'.find('Hallo')
0
Also dann gibt der Find-Befehl ein 0 zurück wenn es gefunden wurde und -1 bei keinem Fund oder wie?lunar hat geschrieben:@bricktopCode: Alles auswählen
>>> 'Hallo Welt'.find('Hallo') 0
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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
Schau doch mal was die Dokumentation sagt: http://docs.python.org/library/stdtypes.html#str.find
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
probier es doch mal mit
Code: Alles auswählen
import re
x="Hallo Welt"
if re.search('Welt',x): print "Gefunden;)"
@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"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‽
the more they change the more they stay the same