Python: Prüfen ob String einen Sustring enthält, der ihm vom Anfang an enspricht?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
>>> help(str)

Dort findest Du alles zu Strings.

Natürlich kann man sich mit slicing behelfen.

Bezüglich find() irrst Du allerdings...

>>> "bleh".startswith("bl")
True
>>> "bleh".startswith("eh")
False
>>> "bleh".find("eh")
2
>>> "bleh".find("bl")
0
>>> "bleh".find("gn")
-1
#ergo:
>>> "bleh".find("bl")==0
True

startswith() hat natürlich den Vorteil, daß es spezifischer und somit schneller ist.

Irgendwo kommt man immer an eine Situation, für die man dann selbst den notwendigen Code erstellen muss (dürfte im hier von dir genannten Fall aber einfach sein).

|

Ich nutze zum Schreiben meiner Programme vor allen ein kleines Subset von C++, das kaum mehr ist als C erweitert um das Klassenkonzept aus C++.

Eine der (von mir selbst geschriebenen) Klassen, die für jedes meiner Programme gute Dienste leistet, enthält Methoden, die ich in der Standard Library für C gesucht, dort aber nicht gefunden und deswegen selbt programmiert habe. Sie ist nun schon über 30 jahre hinweg langsam aber stetig gewachsen. Auf sie verzichten möchte ich heute auf keinen Fall.

Ein Analogon davon wirst du dir für die Programmiersprache deiner Wahl halt auch bauen müssen. Wie sonst soll man als Programmierer ständig effektiver und effizienter werden können?

meinString = 'Hallo Welt'
suche = 'Hallo'
print(meinString[:len(suche)] == suche)
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
Von Experte whgoffline bestätigt

Das geht mit der startswith-Methode:

"water".startswith("wat")

ergibt True

"water".startswith("ter")

ergibt False

Es gibt auch eine endswith Methode

whgoffline  01.07.2021, 13:36

Da habe ich mal wieder zu kompliziert gedacht.

0
KarlRanseierIII  01.07.2021, 15:16
@whgoffline

Jein, Slicing ist halt ein universelles Werkzeug und wäre ein guter Ansatz in Ermangelung von startswith().

1