Tracks
/
Python
Python
/
Lehrplan
/
String-Methoden
St

String-Methoden in Python

60 Übungen

Über String-Methoden

Ein str ist eine unveränderliche Sequenz von Unicode-Codepunkten. Diese können Buchstaben, diakritische Zeichen, Positionierungszeichen, Zahlen, Währungssymbole, Emojis, Satzzeichen, Leerzeichen, Zeilenumbrüche und mehr umfassen.

Strings implementieren alle üblichen Sequenzoperationen und lassen sich mit der Syntax for item in <str> oder for index, item in enumerate(<str>) durchlaufen. Einzelne Codepunkte (Strings der Länge 1) kannst du über einen 0-based index von links oder einen -1-based index von rechts ansprechen.

Strings lassen sich mit <str> + <other str> oder <str>.join(<iterable>) verketten und über <str>.split(<separator>) aufteilen. Sie bieten außerdem viele weitere Formatierungs- und Zusammenbaumöglichkeiten.

Für die weitere Arbeit mit Strings stellt Python eine reichhaltige Sammlung von String-Methoden zum Suchen, Bereinigen, Umwandeln, Übersetzen und für viele andere Operationen bereit.

Einige der häufiger verwendeten str-Methoden sind:

  • Prüfen auf Präfixe/Suffixe mit <str>.startswith(<substr>) und <str>.endswith(<substr>)
  • Ändern der Groß-/Kleinschreibung mit Methoden wie <str>.title(), <str>.upper()/<str>.lower() und <str>.swapcase()
  • Entfernen führender oder nachfolgender Zeichen aus einem String mit <str>.strip(<chars>), <str>.lstrip(<chars>) oder <str>.rstrip(<chars>)
  • Ersetzen von Teilstrings mit der Methode <str>.replace(<old>, <new>)

Da ein str-Objekt unveränderlich ist, kann sich sein Wert im Speicher nicht ändern; Methoden, die einen String zu verändern scheinen, geben eine neue Kopie oder Instanz dieses str-Objekts zurück.

<str>.endswith(<suffix>) gibt True zurück, wenn der String mit <suffix> endet, andernfalls False.

>>> 'My heart breaks. 💔'.endswith('💔')
True

>>> 'cheerfulness'.endswith('ness')
True

# Punctuation is part of the string, so needs to be included in any endswith match.
>>> 'Do you want to 💃?'.endswith('💃')
False

>>> 'The quick brown fox jumped over the lazy dog.'.endswith('dog')
False

<str>.title() analysiert einen String und schreibt das erste „Zeichen“ jedes gefundenen „Wortes“ groß. In Python hängt das stark vom verwendeten Sprach-Codec ab und davon, wie die jeweilige Sprache Wörter und Zeichen darstellt. Möglicherweise gelten auch Locale-Regeln für eine Sprache oder einen Zeichensatz.

>>> man_in_hat_th = 'ผู้ชายใส่หมวก'
>>> man_in_hat_ru = 'мужчина в шляпе'
>>> man_in_hat_ko = '모자를 쓴 남자'
>>> man_in_hat_en = 'the man in the hat.'

>>> man_in_hat_th.title()
'ผู้ชายใส่หมวก'

>>> man_in_hat_ru.title()
'Мужчина В Шляпе'

>>> man_in_hat_ko.title()
'모자를 쓴 남자'

>> man_in_hat_en.title()
'The Man In The Hat.'

<str>.strip(<chars>) gibt eine Kopie des str zurück, bei der führende und nachfolgende <chars> entfernt wurden. Die in <chars> angegebenen Codepunkte sind kein Präfix und kein Suffix: alle Kombinationen der Codepunkte werden von beiden Enden des Strings entfernt. Wenn für <chars> nichts angegeben ist, werden alle Kombinationen von Whitespace-Codepunkten entfernt. Wenn nur links oder nur rechts entfernt werden soll, kannst du <str>.lstrip(<chars>) und <str>.rstrip(<chars>) verwenden.

# This will remove "https://", because it can be formed from "/stph:". 
>>> 'https://unicode.org/emoji/'.strip('/stph:')
'unicode.org/emoji'

# Removal of all whitespace from both ends of the str.
>>> '   🐪🐪🐪🌟🐪🐪🐪   '.strip()
'🐪🐪🐪🌟🐪🐪🐪'

>>> justification = 'оправдание'
>>> justification.strip('еина')
'оправд'

# Prefix and suffix in one step.
>>> 'unaddressed'.strip('dnue')
'address'

>>> '  unaddressed  '.strip('dnue ')
'address'

<str>.replace(<substring>, <replacement substring>) gibt eine Kopie des Strings zurück, in der alle Vorkommen von <substring> durch <replacement substring> ersetzt wurden.

Das unten verwendete Zitat stammt aus The Hunting of the Snark von Lewis Carroll

# The Hunting of the Snark, by Lewis Carroll
>>> quote = '''
"Just the place for a Snark!" the Bellman cried,
   As he landed his crew with care;
Supporting each man on the top of the tide
   By a finger entwined in his hair.

"Just the place for a Snark! I have said it twice:
   That alone should encourage the crew.
Just the place for a Snark! I have said it thrice:
   What I tell you three times is true."
'''

>>> quote.replace('Snark', '🐲')
...
'\n"Just the place for a 🐲!" the Bellman cried,\n   As he landed his crew with care;\nSupporting each man on the top of the tide\n   By a finger entwined in his hair.\n\n"Just the place for a 🐲! I have said it twice:\n   That alone should encourage the crew.\nJust the place for a 🐲! I have said it thrice:\n   What I tell you three times is true."\n'

>>> 'bookkeeper'.replace('kk', 'k k')
'book keeper'

🌟Neu hinzugefügt in Python 3.9

Python 3.9 führt zwei neue String-Methoden ein, mit denen sich Präfixe und Suffixe viel einfacher entfernen lassen.

<str>.removeprefix(<substring>) gibt den String ohne das Präfix zurück (string[len(<substring>):]). Wenn <substring> nicht vorhanden ist, wird eine Kopie des ursprünglichen Strings zurückgegeben.

# removing a prefix
>>> 'TestHook'.removeprefix('Test')
'Hook'
>>> 'bookkeeper'.removeprefix('book')
'keeper'

<str>.removesuffix(<substring>) gibt den String ohne das Suffix zurück (string[:-len(substring)]). Wenn <substring> nicht vorhanden ist, wird eine Kopie des ursprünglichen Strings zurückgegeben.

# removing a suffix
>>> 'TestHook'.removesuffix('Hook')
'Test'
>>> 'bookkeeper'.removesuffix('keeper')
'book'

Weitere Beispiele und Methoden findest du im informellen Tutorial, einem guten Einstiegspunkt. How to Unicode in der Python-Dokumentation bietet viele Details zu Unicode, Kodierung, Bytes und anderen technischen Aspekten bei der Arbeit mit Strings in Python.

Python unterstützt außerdem reguläre Ausdrücke über das Modul re, auf die wir in einem zukünftigen Konzept eingehen werden.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne String-Methoden

Das Üben ist gesperrt

Schalte 3 weitere Übungen frei, um String-Methoden zu üben