Mit Zeichenketten in Python arbeiten

Lerne, in Python mit Text zu arbeiten. Greife mit Indizes und Ausschnitten auf jedes Zeichen und jeden Abschnitt einer Zeichenkette zu, durchlaufe Text zum Zählen und Suchen und erstelle neue Zeichenketten. Erfahre, warum eine Zeichenkette nie direkt verändert werden kann. Verwende Zeichenkettenmethoden, um Groß- und Kleinschreibung zu ändern, Eingaben zu bereinigen sowie Text zu durchsuchen, zu prüfen, aufzuteilen und zusammenzufügen. Formatiere zum Abschluss Ausgaben mit f-Strings: gerundete Zahlen, Tausendertrennzeichen, Prozentangaben, Datums- und Zeitangaben im US-Format sowie sauber ausgerichtete Spalten.

AnfängerEinheit 5 von 10 in Kurs: Python-Programmierung – Schleifen, Funktionen, Listen und Dateien

Was du lernst

  1. Schreibe Zeichenkettenliterale, ermittle die Länge von Zeichenketten und kombiniere sie. Greife mit Indizes und Ausschnitten auf jedes Zeichen und jeden Abschnitt eines Textes zu.
    • Zeichenkettenliterale schreiben und Zeichenketten verknüpfen
      Erstelle Zeichenketten mit Anführungszeichen, Escape-Sequenzen und dreifachen Anführungszeichen, ermittle ihre Länge mit len() und kombiniere sie mit + und *.
    • Einzelne Zeichen über ihren Index auswählen
      Lies mit positiven und negativen Indizes beliebige Zeichen einer Zeichenkette und vermeide Um-eins-Fehler und Fehler bei leeren Zeichenketten, die einen IndexError auslösen.
    • Ausschnitte einer Zeichenkette auswählen
      Wähle Teilzeichenketten mit [start:stop] und [start:stop:step] aus, verwende weggelassene und negative Positionen und sage genau voraus, welche Zeichen ein Ausschnitt enthält.
  2. Durchlaufe eine Zeichenkette, um zu zählen, zu suchen und Text zu erstellen. Berücksichtige dabei, dass die Zeichen einer Zeichenkette nie direkt verändert werden können.
    • Die Zeichen einer Zeichenkette durchlaufen
      Gehe mit for- und while-Schleifen jedes Zeichen durch, verwende Positionen, wenn sie wichtig sind, und wende Muster zum Zählen, Suchen und Ansammeln auf Text an.
    • Neue Zeichenketten erstellen, statt vorhandene zu verändern
      Erkläre, was es bedeutet, dass Zeichenketten unveränderlich sind, und erzeuge veränderten Text durch Ausschnitte, Verkettung und erneute Zuweisung.
  3. Rufe Zeichenkettenmethoden auf, um Groß- und Kleinschreibung zu ändern und Text zu bereinigen, Teilzeichenketten zu finden und zu zählen sowie den Inhalt einer Zeichenkette vor ihrer Verwendung zu prüfen.
    • Groß- und Kleinschreibung ändern und Text mit Methoden bereinigen
      Rufe Methoden mit Punktnotation auf, um Groß- und Kleinschreibung zu ändern, unerwünschte Zeichen zu entfernen, Text zu ersetzen und Zeichenketten aufzufüllen. Verknüpfe mehrere Methoden miteinander.
    • Text innerhalb einer Zeichenkette suchen
      Prüfe, ob eine Teilzeichenkette vorkommt, finde ihren Anfang, zähle ihre Vorkommen und nutze gefundene Positionen, um Text auszuschneiden.
    • Zeichenketten prüfen und vergleichen
      Prüfe, womit eine Zeichenkette beginnt, womit sie endet oder woraus sie besteht, validiere Eingaben vor der Umwandlung und sage voraus, wie Python Zeichenketten vergleicht und sortiert.
  4. Zerlege eine Textzeile mit split() in Wörter oder Felder und füge Teile mit join() wieder zu einer Zeichenkette zusammen.
    • Eine Zeichenkette in eine Liste von Teilen zerlegen
      Verwende split() mit und ohne Trennzeichen, begrenze die Anzahl der Aufteilungen und wandle die Teile einer Zeile in die Werte um, die ein Programm braucht.
    • Zeichenketten mit einem Trennzeichen zusammenfügen
      Füge mit join() viele Zeichenketten zu einer zusammen, wähle das Trennzeichen, wandle andere Elemente zuerst um und kombiniere split() mit join(), um Text umzuformen.
  5. Erstelle übersichtliche Ausgaben, indem du mit f-Strings Werte in Text einfügst, Zahlen, Datums- und Zeitangaben lesbar formatierst und Ergebnisse in Spalten ausrichtest.
    • Werte mit f-Strings in Text einsetzen
      Schreibe f-Strings, die die Werte von Variablen und Ausdrücken in Text einsetzen, und erkenne die älteren Schreibweisen mit format() und % in vorhandenem Code.
    • Zahlen, Datums- und Zeitangaben lesbar formatieren
      Ergänze Formatangaben, um Nachkommastellen, Rundung, Tausendertrennzeichen, Prozentangaben, Vorzeichen und das Auffüllen mit Nullen zu steuern, und erstelle Datums- und Zeitangaben im US-Format.
    • Ausgaben in Spalten ausrichten
      Lege Feldbreiten, Ausrichtung und Füllzeichen fest, kürze langen Text und kombiniere diese Möglichkeiten, um ausgerichtete Tabellen und Kassenbons auszugeben.

Zeichenketten in Python einfach erklärt

5 Kapitel

1

Zeichenketten erstellen und ihre Teile auswählen

Text in einem Programm hat sowohl Inhalt als auch Positionen. Ein Name kann ein Leerzeichen enthalten, eine Nachricht einen Zeilenumbruch und ein Code kann seine ersten beiden Buchstaben getrennt von seiner Zahl speichern. Du kannst diese Zeichenketten erstellen, kombinieren und genau die Zeichen auswählen, die du brauchst. Unterscheide zunächst, wie Text in Python geschrieben wird und welchen Wert er enthält. Nutze dann eine Darstellung der Positionen, um Indizes und Ausschnitte vorhersehbar zu machen.

1.1 Zeichenkettenliterale schreiben und Zeichenketten verknüpfen

Eine Zeichenkette ist eine Folge von Zeichen mit dem Datentyp str. Sie kann einen Namen, einen Satz, einen Code oder auch gar keine Zeichen enthalten. Python behält die Reihenfolge der Zeichen einschließlich Leerzeichen und Satzzeichen bei.

Schreibe den Wert zwischen passende Anführungszeichen

Einfache und doppelte Anführungszeichen erzeugen dieselbe Art von Wert: 'hello' und "hello" sind gleich. Die äußeren Anführungszeichen markieren die Grenzen; sie sind keine Zeichen des Werts. Wähle Anführungszeichen so, dass solche innerhalb des Textes gut lesbar bleiben:

message = "It's late"
reply = 'She said "yes"'
empty = ""

In 'It's late' schließt der Apostroph die Zeichenkette zu früh und verursacht einen SyntaxError. Doppelte Anführungszeichen lösen das Problem, oder du kannst 'It\'s late' schreiben. Verwende im Code gerade Anführungszeichen.

Speichere Zeilenumbrüche und umgekehrte Schrägstriche

Eine Escape-Sequenz beginnt mit einem umgekehrten Schrägstrich. Python liest \n als einen Zeilenumbruch, \t als einen Tabulator und \\ als einen umgekehrten Schrägstrich. Maskierte Anführungszeichen, \' und \", setzen Anführungszeichen in den Text.

text = "a\nb"
print(len(text))  # 3
print(text)

Der letzte Aufruf gibt a und b in getrennten Zeilen aus. Der Wert hat drei Zeichen: a, einen Zeilenumbruch und b. Escape-Sequenzen werden verarbeitet, wenn Python das Literal liest. Die Shell zeigt eine Darstellung mit Anführungszeichen und, wo nötig, Escape-Sequenzen; print() zeigt die Zeichen selbst. Beispielsweise wird "\x41" zu "A", sodass die Shell die ursprüngliche Escape-Sequenz nicht anzeigen muss.

Dreifache Anführungszeichen erlauben Literale über mehrere Zeilen. Jeder Zeilenumbruch darin wird zu einem Zeilenumbruchzeichen:

notice = """Door closed
Use side entrance"""

Eine rohe Zeichenkette hat ein r vor ihren Anführungszeichen. In r"C:\new" bleiben der umgekehrte Schrägstrich und n getrennt, sodass sich sechs Zeichen ergeben. In "C:\new" wird \n zu einem Zeilenumbruch, sodass sich fünf ergeben. Rohe Literale sind nützlich, wenn umgekehrte Schrägstriche zum Text gehören.

Ermittle die Länge von Text und kombiniere Text

len() zählt jedes Zeichen einschließlich Leerzeichen: len("Hi there!") ist 9 und len("") ist 0. Genauer zählt die Funktion Unicode-Codepunkte. len("café") ist 4, wenn é ein Codepunkt ist; len("👍🏽") ist 2, obwohl das Emoji wie ein Symbol aussieht.

Verwende +, um Zeichenketten zu verketten, und *, um eine Zeichenkette zu wiederholen:

first = "Ada"
last = "Lovelace"
full = first + " " + last  # "Ada Lovelace"
rule = "-" * 10           # ten dashes

Die Verkettung fügt nichts von selbst ein. Ohne " " werden die Namen zu "AdaLovelace". Wird "ab" nullmal wiederholt, ergibt sich die leere Zeichenkette.

Entscheide, ob Ziffern Text oder Zahlen sind

Beide Operanden einer Zeichenkettenverkettung müssen Zeichenketten sein. "Age: " + 30 löst einen TypeError aus; "Age: " + str(30) ergibt "Age: 30". Umgekehrt gibt input() Text zurück: "3" + "4" ergibt "34". Um ihre Zahlenwerte zu addieren, wandle sie zuerst um: int("3") + int("4") ergibt 7.

Wichtige Erkenntnisse

  • Eine Zeichenkette speichert eine geordnete Folge von Zeichen; ihre äußeren Anführungszeichen gehören zur Syntax.
  • ist ein Zeilenumbruchzeichen, während rohe Literale den umgekehrten Schrägstrich und den folgenden Buchstaben getrennt halten.
  • len() zählt Codepunkte einschließlich Leerzeichen und Satzzeichen.
  • + fügt Zeichenketten ohne zusätzliche Leerzeichen zusammen; * wiederholt eine Zeichenkette.
  • Wandle Text zum Rechnen in Zahlen und Zahlen zum Verketten in Text um.

1.2 Einzelne Zeichen über ihren Index auswählen

Ein Index wählt ein Zeichen anhand seiner Position aus. Python beginnt bei null zu zählen, daher ist die Position eines Zeichens um eins kleiner als sein Platz bei einer gewöhnlichen Zählung von links.

Zeichne die Positionen auf

Für word = "Python" hat jedes Zeichen einen nicht negativen und einen negativen Index:

ZeichenPython
Vom Anfang012345
Vom Ende-6-5-4-3-2-1
word = "Python"
print(word[0])   # P
print(word[1])   # y
print(word[-1])  # n

Die eckigen Klammern nach der Zeichenkette wählen das Zeichen aus. Das Ergebnis ist eine Zeichenkette der Länge eins: Python hat keinen eigenen Datentyp für einzelne Zeichen. Du kannst ausgewählte Zeichen zusammenfügen, daher ergibt word[0] + word[-1] den Wert "Pn".

Bei der Länge n reichen die gültigen Indizes von -n bis n - 1, wenn n > 0 gilt. Nicht negative Indizes zählen vom Anfang, negative vom Ende. Ein Index -k wählt dasselbe Zeichen wie n - k; in diesem Wort aus sechs Zeichen wählen sowohl -2 als auch 4 das Zeichen "o".

Unterscheide die Länge vom letzten Index

len(word) ist 6, aber word[6] löst einen IndexError aus: Es gibt kein siebtes Zeichen. Das letzte Zeichen ist word[len(word) - 1], oder einfach word[-1]. Ein zu weiter Zugriff von einem der beiden Enden aus schlägt fehl; auch word[-7] löst einen IndexError aus.

Ein Index muss eine ganze Zahl sein. word[1.0] löst einen TypeError aus, obwohl die Gleitkommazahl einen ganzzahligen Wert hat. Verwende //, wenn du eine Position in der Mitte berechnest:

word = "Pyt"
middle = len(word) // 2  # 1
print(word[middle])      # y

Der Operator / würde 1.5 erzeugen; damit lässt sich nicht über einen Index auf eine Zeichenkette zugreifen. Bei ungerader Länge wählt len(word) // 2 das Zeichen in der Mitte. Bei gerader Länge wählt der Ausdruck das rechte der beiden Zeichen in der Mitte: "Python"[3] ist "h".

Bilde Initialen aus den ersten Zeichen
first = "Grace"
last = "Hopper"
initials = first[0] + last[0]
print(initials)  # GH

Jeder Name steuert sein Zeichen an Index 0 bei. Mit first[-1] würdest du "e" beitragen, den letzten Buchstaben. Diese Methode setzt voraus, dass jeder Name mindestens ein Zeichen hat.

Prüfe leere Eingaben vor dem Indexzugriff

Die leere Zeichenkette hat die Länge null und keinen gültigen Zeichenindex. ""[0] löst einen IndexError aus. Eine Längenprüfung kann verhindern, dass ein Programm ein Zeichen liest, das nicht existiert:

line = input("Comment: ")
if len(line) > 0 and line[0] == "#":
    print("Comment line")

Python wertet and von links nach rechts aus. Ist die Längenprüfung falsch, überspringt Python line[0]. Würdest du die beiden Prüfungen umkehren, käme der unsichere Indexzugriff zuerst. Wenn du nur wissen musst, ob eine Zeile mit "#" beginnt, funktioniert line.startswith("#") auch bei leerer Eingabe und gibt False zurück.

Wichtige Erkenntnisse

  • Index 0 wählt das erste Zeichen; Index -1 wählt das letzte.
  • Der letzte nicht negative Index ist len(text) - 1.
  • Ein Indexzugriff gibt eine einzeichenlange Zeichenkette zurück und löst für eine fehlende Position einen IndexError aus.
  • Verwende einen ganzzahligen Index und prüfe auf leere Eingaben, bevor du ein Zeichen auswählst.

1.3 Ausschnitte einer Zeichenkette auswählen

Ein Ausschnitt wählt eine zusammenhängende Folge von Zeichen aus und gibt sie als Zeichenkette zurück. Damit kannst du einen Anfangsteil auswählen, ein Ende entfernen oder Felder an festen Positionen trennen.

Der Start ist eingeschlossen, das Ende ausgeschlossen

Schreibe text[start:stop]. Mit s = "Monty Python" ergibt s[0:5] den Wert "Monty" und s[6:12] den Wert "Python". Das Leerzeichen steht an Index 5, daher beginnt der zweite Ausschnitt bei 6.

Stell dir die Zahlen eines Ausschnitts als Lücken vor. Lücke 0 liegt vor dem ersten Zeichen und Lücke 5 nach den ersten fünf. Nimmst du alles dazwischen, erhältst du fünf Zeichen. Für 0 <= start <= stop <= len(text) ist die Länge stop - start.

word = "Monty"
print(word[0:4])  # Mont
print(word[0:5])  # Monty

Die Endposition ist die erste ausgelassene Position. Addierst du eins zum gewünschten letzten Index, wird dieses letzte Zeichen eingeschlossen.

Lass eine Grenze weg
AusschnittBedeutungErgebnis für s
s[:5]Anfang bis einschließlich Position 4"Monty"
s[6:]Position 6 bis zum Ende"Python"
s[:]Ganze Zeichenkette"Monty Python"
s[-6:]Letzte sechs Zeichen"Python"
s[:-1]Alles außer dem letzten Zeichen"Monty Pytho"

An jeder Trennposition k gibt s[:k] + s[k:] den Wert s zurück. Die Ausschnitte treffen an derselben Lücke aufeinander, ohne dass ein Zeichen fehlt oder wiederholt wird.

Ausschnittsgrenzen außerhalb der Enden werden auf die Enden begrenzt. "cat"[1:100] ist "at"; "cat"[5:] ist "". Bei einem Ausschnitt in Vorwärtsrichtung ergibt ein Start bei oder nach der Endgrenze eine leere Zeichenkette, wie bei s[4:2]. Anders als bei einem Indexzugriff auf ein einzelnes Zeichen löst ein Ausschnitt außerhalb des gültigen Bereichs keinen IndexError aus.

Wähle eine Schrittweite

Die dritte Stelle in text[start:stop:step] legt fest, wie weit zwischen ausgewählten Positionen gegangen wird:

letters = "abcdefgh"
print(letters[::2])   # aceg
print(letters[1::2])  # bdfh
print(letters[::-1])  # hgfedcba

Eine negative Schrittweite führt rückwärts. Sind beide Grenzen weggelassen, beginnt [::-1] beim letzten Zeichen und besucht jedes Zeichen in umgekehrter Reihenfolge. Eine Schrittweite von null löst einen ValueError aus. Die Richtung muss zu den Grenzen passen: Die obige Regel für ein leeres Ergebnis bei „Start bei oder nach der Endgrenze“ gilt für eine positive Schrittweite.

Wende Ausschnitte auf einen festen Aufbau an
d = "2026-07-04"
year = d[:4]
month = d[5:7]
day = d[8:10]
print(month + "/" + day + "/" + year)  # 07/04/2026

Die Positionen funktionieren, weil dieser Aufbau immer vier Ziffern für das Jahr und je zwei für Monat und Tag verwendet. Text mit unterschiedlichen Feldlängen benötigt eine Suche oder Aufteilung.

Die Umkehrung ermöglicht auch eine Palindromprüfung: word == word[::-1]. "level" besteht sie, "Level" aber nicht, weil Groß- und Kleinschreibung zählen. Weise clean = word.lower() zu und prüfe clean == clean[::-1], um Groß- und Kleinschreibung zu ignorieren.

Wichtige Erkenntnisse

  • Ein Ausschnitt schließt seinen Start ein und seine Endgrenze aus.
  • Mit weggelassenen Grenzen und negativen Positionen lassen sich Anfangs- und Endteile leicht auswählen.
  • Ausschnittsgrenzen außerhalb des gültigen Bereichs werden begrenzt; eine Schrittweite von null löst einen ValueError aus.
  • Eine negative Schrittweite führt rückwärts; [::-1] kehrt die ganze Zeichenkette um.
  • Ausschnitte an festen Positionen setzen einen einheitlichen Textaufbau voraus.
2

Zeichenketten Zeichen für Zeichen verarbeiten

Eine Schleife kann jedes Zeichen untersuchen, fortlaufend zählen, beim ersten Treffer anhalten oder eine neue Nachricht erstellen. Dieselben kleinen Muster funktionieren für viele Textaufgaben: Vokale zählen, eine Ziffer finden oder ausgewählte Buchstaben verbergen. Zeichenketten haben nach ihrer Erstellung außerdem einen festen Wert. Wenn du eine Schleife Durchlauf für Durchlauf verfolgst, siehst du, wie ein Programm veränderten Text erzeugen kann, während die ursprüngliche Zeichenkette erhalten bleibt, und warum sich die Zuweisung an eine Variable vom Ändern eines Zeichens unterscheidet.

2.1 Die Zeichen einer Zeichenkette durchlaufen

Verwende eine Schleife, wenn für jedes Zeichen eine Entscheidung getroffen werden muss. Die Schleife kann Treffer zählen, ihre Positionen verwenden, beim ersten Treffer anhalten oder die Zeichen sammeln, die zu einem Ergebnis gehören.

Gehe Zeichen direkt durch
for ch in "hi!":
    print(ch)

Der Körper wird dreimal ausgeführt, wobei ch nacheinander "h", "i" und "!" ist. Bei der leeren Zeichenkette wird der Körper nullmal ausgeführt. Eine direkte Zeichenschleife braucht keinen Index, wenn du nur das aktuelle Zeichen verwendest.

Initialisiere zum Zählen den Zähler vor der Schleife und erhöhe ihn nur, wenn die Prüfung zutrifft:

text = "Programming in Python"
count = 0
for ch in text.lower():
    if ch in "aeiou":
        count += 1
print(count)  # 5

Durch das Kleinschreiben werden auch große Vokale erkannt. Die Prüfzeichenkette legt die gezählten Vokale fest; sie enthält kein y. Würdest du count innerhalb der Schleife zurücksetzen, ginge die Summe aus früheren Durchläufen verloren.

Verwende Positionen, wenn benachbarte Zeichen wichtig sind

range(len(text)) liefert die Indizes von null bis zum letzten gültigen Index. Für eine Aufgabe, die Position und Zeichen benötigt, liefert enumerate(text) beide zusammen:

for i, ch in enumerate("abc"):
    print(i, ch)

Dies gibt zuerst 0 a, dann 1 b und dann 2 c aus. Die beiden Schleifenvariablen erhalten aus jedem Paar den Index und das Zeichen.

Um Nachbarn zu vergleichen, darf der letzte Index nicht die aktuelle Position sein, weil es danach kein nächstes Zeichen gibt:

text = "bookkeeper"
pairs = 0
for i in range(len(text) - 1):
    if text[i] == text[i + 1]:
        pairs += 1
print(pairs)  # 3

Die Treffer sind oo, kk und ee. Mit range(len(text)) würde der letzte Durchlauf auf text[len(text)] zugreifen und einen IndexError auslösen.

Verwalte eine Position mit while
i = 0
while i < len(text):
    print(text[i])
    i += 1

Die Prüfung verwendet strikt <: Die Position len(text) liegt hinter dem Ende. Das Inkrement führt die Schleife ihrem Ende näher; lässt du es weg, wird bei nicht leerem Text endlos dasselbe Zeichen gelesen. Für einen Rückwärtslauf beginne bei len(text) - 1, fahre fort, solange i >= 0 gilt, und ziehe bei jedem Durchlauf eins ab.

Suche oder sammle

Für die erste Ziffer in "Room 42B" beende die Schleife, sobald ein Treffer verwendet wurde:

for ch in "Room 42B":
    if ch.isdigit():
        print(ch)  # 4
        break

Ohne break würden beide Ziffern ausgegeben. Für eine einfache Prüfung auf Vorhandensein beantwortet "4" in text bereits die Ja-oder-nein-Frage.

Um Text zu sammeln, beginne mit result = "" und füge jedes gewünschte Zeichen hinzu. Für "a b c" entsteht "abc", wenn du nur bei ch != " " etwas hinzufügst. Die Zuweisung ch = ch.upper() innerhalb einer Schleife ändert nur die Schleifenvariable; sie verändert nicht die in text gespeicherten Zeichen.

Wichtige Erkenntnisse

  • Eine direkte for-Schleife durchläuft jedes Zeichen der Reihe nach.
  • Initialisiere Zähler und Akkumulatoren vor der Schleife.
  • enumerate() liefert jeden Index zusammen mit seinem Zeichen.
  • Beende den Durchlauf eine Position früher, wenn du text[i + 1] liest.
  • Eine while-Schleife braucht eine sichere Grenze und eine Aktualisierung der Position.
  • break beendet eine Suche beim ersten Treffer.

2.2 Neue Zeichenketten erstellen, statt vorhandene zu verändern

Zeichenketten sind unveränderlich: Ihre Zeichen können nicht geändert werden, nachdem die Zeichenkette erstellt wurde. Ein Programm, das scheinbar Text bearbeitet, erstellt eine andere Zeichenkette und bestimmt, welche Variable darauf verweist.

Lies ein Zeichen, aber weise ihm nichts zu
name = "Jane"
name[0] = "D"  # TypeError

Über den Index lässt sich "J" lesen, aber er kann nicht das Ziel einer Zuweisung sein. Auch del name[0] löst einen TypeError aus. Um "Dane" zu erhalten, kombiniere das gewünschte erste Zeichen mit dem unveränderten Ende:

name = "Jane"
name = "D" + name[1:]
print(name)  # Dane

Python wertet zuerst die rechte Seite aus und erzeugt eine neue Zeichenkette. Anschließend lässt Python name auf dieses Ergebnis verweisen.

Ersetze oder füge an einer bekannten Position ein

Für einen gültigen nicht negativen Index i verwenden diese Ausdrücke unterschiedliche Ausschnitte auf der rechten Seite:

AufgabeAusdruck
Zeichen bei i ersetzentext[:i] + new + text[i + 1:]
Vor dem Zeichen bei i einfügentext[:i] + new + text[i:]

Beim Ersetzen wird das alte Zeichen übersprungen; beim Einfügen bleibt es erhalten. Mit text = "cat", i = 1 und new = "X" ergibt das Ersetzen "cXt", während das Einfügen "cXat" ergibt.

Wandle einen negativen Index in den entsprechenden nicht negativen Index um, bevor du dieses Ersetzungsmuster verwendest. Für das letzte Zeichen von "cat" ist i = len(text) - 1 gleich 2. Wenn du -1 direkt in text[i + 1:] einsetzt, wird daraus text[0:]. Dadurch wird die gesamte alte Zeichenkette angehängt und es entsteht "caXcat".

Halte das Ergebnis einer Methode fest

Umwandlungsmethoden folgen derselben Regel der Unveränderlichkeit:

msg = "hello"
msg.upper()
print(msg)       # hello
msg = msg.upper()
print(msg)       # HELLO

Der erste Aufruf berechnet ein Ergebnis, das das Programm verwirft. Die Zuweisung hält das zweite Ergebnis fest. Zeichenkettenmethoden ändern die ursprüngliche Zeichenkette nie, aber ihre Rückgabetypen unterscheiden sich: upper() gibt eine Zeichenkette zurück, find() eine ganze Zahl und isdigit() einen booleschen Wert.

Verfolge zwei Namen für einen Wert

Nach a = "cat" und b = a verweisen beide Variablen auf "cat". Die Ausführung von a = a + "s" gibt a den neuen Wert "cats"; b verweist weiterhin auf "cat". Kein Zeichen der gemeinsam referenzierten alten Zeichenkette wurde geändert. a += "s" führt bei einer Zeichenkette dieselbe Art erneuter Zuweisung aus.

Erstelle einen veränderten Wert in einer Schleife
word = "secret"
masked = ""
for ch in word:
    if ch in "aeiou":
        masked += "*"
    else:
        masked += ch
print(masked)  # s*cr*t
print(word)    # secret

Jeder Durchlauf erweitert masked um ein ausgewähltes Zeichen. Setzt du stattdessen jedes Zeichen mit result = ch + result an den Anfang, wird der Text umgekehrt: Die Durchläufe über "drawer" erzeugen "d", "rd", "ard", "ward", "eward" und "reward".

Wiederholte Verkettung ist für kurze Beispiele praktisch. Wenn die Teile bereits in einer Liste vorliegen, erstellt "".join(pieces) direkt ein Ergebnis und kann auch ein Trennzeichen dazwischen setzen.

Wichtige Erkenntnisse

  • Eine Zeichenkette kann weder durch Elementzuweisung noch durch Löschen verändert werden.
  • Ersetzen und Einfügen erzeugen neue Zeichenketten aus Ausschnitten.
  • Halte das Ergebnis einer Umwandlung durch eine Zuweisung fest.
  • Eine erneute Zuweisung an eine Variable lässt andere Variablen weiterhin auf den alten Wert verweisen.
  • Ein Akkumulator erstellt eine neue Zeichenkette aus jeweils einem ausgewählten Teil.
3

Text mit Zeichenkettenmethoden umwandeln, durchsuchen und prüfen

Mit Zeichenkettenmethoden kannst du nützliche Fragen zu Text stellen und bereinigte Versionen davon erzeugen. Ein Programm muss möglicherweise zusätzliche Leerzeichen in einer Antwort akzeptieren, ein Trennzeichen finden oder prüfen, ob sich eine Mengenangabe in eine Zahl umwandeln lässt. Wähle eine Methode nach dem benötigten Ergebnis: verändertem Text, einer Position, einer Anzahl oder einem booleschen Prüfergebnis. Achte auf exakte Übereinstimmung, den Rückgabewert bei erfolgloser Suche und den Unterschied zwischen Textreihenfolge und numerischer Reihenfolge.

3.1 Groß- und Kleinschreibung ändern und Text mit Methoden bereinigen

Eine Methode ist eine Funktion, die zu einem Wert gehört. Zeichenkettenmethoden übernehmen häufige Aufgaben wie das Ändern der Groß- und Kleinschreibung, das Bereinigen von Eingaben an den Rändern und das Ersetzen von Text. Jeder Aufruf gibt ein Ergebnis zurück und lässt die ursprüngliche Zeichenkette unverändert.

Rufe eine Methode mit Punktnotation auf

Schreibe value.method(arguments), wie in "hello".upper(). Die Klammern führen den Aufruf aus. name.upper ohne Klammern verweist auf die Methode selbst; es erzeugt keinen Text in Großbuchstaben. upper(name) findet keine eigenständige Funktion namens upper. Verwende dir(""), um Zeichenkettenmethoden aufzulisten, und help(str.upper), um etwas über eine davon zu lesen.

Wähle eine Operation für Groß- und Kleinschreibung
MethodeErgebnis für das Beispiel
"Hello".upper()"HELLO"
"Hello".lower()"hello"
"Hello".swapcase()"hELLO"
"the old man".title()"The Old Man"
"hELLO wORLD".capitalize()"Hello world"

capitalize() ändert das erste Zeichen und schreibt den Rest klein; title() beginnt nach Zeichen, die keine Buchstaben sind, erneut Wörter. Dadurch wird "they're".title() zu "They'Re", sodass eine automatische Großschreibung von Wortanfängen möglicherweise geprüft werden muss.

Für Vergleiche ohne Unterschiede in der Groß- und Kleinschreibung berücksichtigt casefold() über verschiedene Sprachen hinweg mehr Fälle als lower(). "Straße".lower() ist "straße", während "Straße".casefold() gleich "strasse" ist. Vereinheitliche vor dem Vergleich bei beiden Zeichenketten die Groß- und Kleinschreibung auf diese Weise.

Bereinige die Enden von Text

strip() entfernt vorangestellte und abschließende Leerraumzeichen, darunter Leerzeichen, Tabulatoren und Zeilenumbrüche. Abstände im Inneren bleiben erhalten: " New York \n".strip() ist "New York". lstrip() bereinigt nur das linke Ende; rstrip() nur das rechte.

Mit einem Argument entfernt die Methode beliebige dieser Zeichen wiederholt von den Enden. Sie entfernt kein genaues Wort:

print("...Wow!!!".strip(".!"))          # Wow
print("report.txt".rstrip(".txt"))     # repor
print("report.txt".removesuffix(".txt"))  # report

Das letzte t in report gehört ebenfalls zur Menge der zu entfernenden Zeichen und verschwindet daher. removeprefix() und removesuffix() entfernen genauen Text an einem Ende; sie sind ab Python 3.9 verfügbar.

Ersetze Treffer und verkette Änderungen

replace(old, new) ersetzt jeden exakten Treffer. Ein drittes Argument begrenzt die Anzahl der geänderten Treffer: "a-b-c".replace("-", "", 1) ergibt "ab-c". Ein leerer Ersatz löscht Treffer. Groß- und Kleinschreibung zählen, daher ergibt "Cat cat".replace("cat", "dog") den Wert "Cat dog".

answer = "  YES \n"
answer = answer.strip().lower()
print(answer == "yes")  # True

Die Aufrufe laufen von links nach rechts: strip() gibt "YES" zurück, danach gibt lower() den Wert "yes" zurück. Eine Verkettung funktioniert, wenn die nächste Methode zum Datentyp des vorherigen Ergebnisses passt. Ein Suchergebnis ist eine ganze Zahl und unterstützt daher keine Methoden zur Bereinigung von Zeichenketten.

Zum Auffüllen ergibt "7".zfill(3) den Wert "007", "Total".ljust(8) fügt rechts drei Leerzeichen hinzu und "Hi".center(8, "*") ergibt "***Hi***". rjust() füllt links auf. Diese Breiten sind Mindestwerte; längerer Text bleibt vollständig erhalten.

Wichtige Erkenntnisse

  • Verwende Punktnotation und Klammern, um eine Zeichenkettenmethode aufzurufen.
  • Operationen für Groß- und Kleinschreibung haben unterschiedliche Aufgaben; casefold() unterstützt sprachübergreifende Vergleiche.
  • strip(chars) entfernt eine Menge von Zeichen an den Enden; für genaue Vor- oder Nachsilben brauchst du removeprefix() oder removesuffix().
  • replace() sucht nach genau übereinstimmendem Text und kann die Anzahl der Änderungen begrenzen.
  • Umwandlungsverkettungen laufen von links nach rechts über jede zurückgegebene Zeichenkette.
  • Das Auffüllen ergänzt Zeichen bis zu einer Mindestbreite.

3.2 Text innerhalb einer Zeichenkette suchen

Eine Suche kann drei verschiedene Fragen beantworten: ob Text vorkommt, wo er beginnt und wie oft er vorkommt. Wähle das Ergebnis, das zu der Entscheidung passt, die dein Programm treffen muss.

Wähle ein Suchergebnis
WerkzeugErgebnisWenn kein Treffer vorhanden ist
sub in textVorhandensein als True oder FalseFalse
text.find(sub)Erster Anfangsindex-1
text.rfind(sub)Letzter Anfangsindex-1
text.index(sub)Erster AnfangsindexLöst ValueError aus
text.count(sub)Anzahl nicht überlappender Treffer0

Eine Teilzeichenkette ist eine zusammenhängende Folge von Zeichen. "py" in "happy" ist True, aber "hpy" in "happy" ist False. Beim Abgleich zählt die Groß- und Kleinschreibung: "Py" in "python" ist False. not in kehrt die Prüfung auf Vorhandensein um. Die leere Zeichenkette kommt in jeder Zeichenkette vor.

Finde das richtige Vorkommen
text = "banana"
print(text.find("an"))     # 1
print(text.find("an", 2))  # 3
print(text.rfind("an"))    # 3

Die optionale Startposition überspringt frühere mögliche Treffer. Der zurückgegebene Index zählt weiterhin vom Anfang der ganzen Zeichenkette. index() gibt dieselbe Position zurück, wenn ein Treffer existiert. Der Fehler bei fehlendem Treffer macht die Methode nützlich, wenn das Fehlen auf ein unerwartetes Problem hinweist.

Prüfe eine Position vor dem Ausschneiden
email = "maria.lopez@example.org"
at = email.find("@")
if at != -1:
    user = email[:at]
    domain = email[at + 1:]
    print(user)    # maria.lopez
    print(domain)  # example.org

Die Suche gibt 11 zurück. Der erste Ausschnitt endet vor @; der zweite beginnt ein Zeichen danach. Wäre das Kennzeichen nicht vorhanden, wäre at gleich -1. Würdest du diesen Wert als Ausschnittsgrenze verwenden, würde unbemerkt Text nahe dem Ende ausgewählt. Behandle daher ein fehlendes Kennzeichen, bevor du Teile herausnimmst.

Verwende if text.find("x"): nicht als Prüfung auf Vorhandensein. Ein Treffer bei Index 0 gilt in einer Bedingung als falsch, während der Wert -1 für ein fehlendes Ergebnis als wahr gilt. Verwende if "x" in text: oder vergleiche die Position ausdrücklich mit -1.

Suche ab einem bekannten Kennzeichen

Bei line = "Order #4521 shipped" folgt die Nummer auf # und endet beim nächsten Leerzeichen:

start = line.find("#") + 1
end = line.find(" ", start)
number = line[start:end]
print(number)  # 4521

Hier sind beide Kennzeichen vorhanden. Der Start der zweiten Suche bei start überspringt das frühere Leerzeichen nach Order. Falls Kennzeichen fehlen können, prüfe jedes unmittelbare Suchergebnis, bevor du eins addierst oder einen Ausschnitt bildest. Die Addition von eins zu -1 würde die fehlgeschlagene Suche verbergen, indem daraus 0 wird.

Zähle vollständige Treffer

"banana".count("a") ist 3 und "banana".count("ana") ist 1. Die beiden möglichen Treffer ana überlappen sich, daher zählt count() nicht beide. Ebenso ist "aaaa".count("aa") gleich 2.

Um Groß- und Kleinschreibung zu ignorieren, durchsuche eine umgewandelte Version, etwa mit "python" in sentence.lower(). Die Suche gleicht innerhalb dieser Version weiterhin exakt ab. Für Zählungen und Prüfungen auf Vorhandensein kannst du die umgewandelte Zeichenkette direkt verwenden; ein Index gehört zu der jeweils durchsuchten Zeichenkette.

Wichtige Erkenntnisse

  • Verwende in für das Vorhandensein, eine Suchmethode für die Position und count() für die Häufigkeit.
  • find() und rfind() geben -1 zurück, wenn Text fehlt; index() löst einen ValueError aus.
  • Prüfe ein Suchergebnis, bevor du es als Index oder Ausschnittsgrenze verwendest.
  • Ein Startargument überspringt frühere Treffer, wobei die Indizes weiterhin für die ganze Zeichenkette gelten.
  • count() zählt nicht überlappende Treffer.

3.3 Zeichenketten prüfen und vergleichen

Zeichenkettenprüfungen geben boolesche Werte zurück, die eine Bedingung steuern können. Sie helfen dir, Eingaben zu akzeptieren, die einer Regel entsprechen, und Text in einer einheitlichen Form zu vergleichen.

Prüfe die Enden oder die Zeichen

startswith() und endswith() prüfen genauen Text an den Enden. Mit einem Tupel kann eine Prüfung mehrere Endungen akzeptieren: name.endswith((".jpg", ".png")). Das großgeschriebene "photo.PNG" besteht diese Prüfung nur, wenn du es zuerst kleinschreibst.

PrüfungWahr, wenn die nicht leere Zeichenkette Folgendes enthält …
isalpha()Nur Buchstaben
isalnum()Nur Buchstaben oder Ziffern
isdigit()Nur Unicode-Ziffernzeichen
isdecimal()Nur Dezimalziffernzeichen
isspace()Nur Leerraumzeichen

Alle fünf geben für "" den Wert False zurück. Buchstaben müssen nicht englisch sein: "café".isalpha() ist True. Das Leerzeichen in "hello world" führt dazu, dass isalpha() falsch ergibt.

isupper() und islower() betrachten Zeichen mit Groß- und Kleinschreibung und setzen mindestens eines davon voraus. "ABC1".isupper() ist True; die Ziffer ändert nichts an den Großbuchstaben. "123" hat keine Zeichen mit Groß- und Kleinschreibung, daher sind beide Prüfungen falsch.

Validiere vor der Umwandlung

Eine Ziffernprüfung erfasst nicht jede Zahl, die Python lesen kann. "-5".isdigit(), "3.5".isdigit() und " 42".isdigit() sind falsch, weil ein Vorzeichen, ein Punkt oder ein Leerzeichen keine Ziffer ist. Außerdem ist "²".isdigit() wahr, obwohl int("²") fehlschlägt. isdecimal() lehnt die hochgestellte Ziffer ab und eignet sich für die Eingabe einer einfachen nicht negativen ganzen Zahl.

text = input("Tickets: ").strip()
if text.isdecimal() and int(text) > 0:
    print("Accepted")
else:
    print("Enter a positive whole number")

Die Zeichenkettenprüfung läuft zuerst. Ist sie falsch, überspringt and die Umwandlung und schützt so vor leeren oder nicht numerischen Eingaben. " 12 " wird zu "12" und besteht die Prüfung; "0" lässt sich sicher umwandeln, besteht aber die Prüfung auf einen positiven Wert nicht. Diese Regel lehnt Eingaben mit Vorzeichen oder Dezimalpunkt bewusst ab.

Eine Regel für Benutzernamen kann Längen- und Zeichenprüfungen kombinieren: 3 <= len(name) <= 12 and name.isalnum(). "ada99" besteht die Prüfung, "ada 99" besteht die Zeichenprüfung nicht und "ad" besteht die Längenprüfung nicht.

Vergleiche bereinigten Text

Gleichheit erfordert dieselben Zeichen in derselben Reihenfolge. "Yes" == "yes" und "yes " == "yes" sind falsch. Für Antworten, bei denen Groß- und Kleinschreibung sowie Leerraumzeichen an den Rändern ignoriert werden sollen, vergleiche typed.strip().casefold() mit expected.strip().casefold().

Die Sortierung erfolgt Zeichen für Zeichen. Der erste unterschiedliche Unicode-Codepunkt entscheidet. ord("A") ist 65, ord("Z") ist 90 und ord("a") ist 97; chr(97) ergibt "a". Daher ist "Zebra" < "apple" wahr. Ist eine Zeichenkette der Anfang der anderen, kommt die kürzere zuerst: "app" < "apple".

Auch Zeichenketten aus Ziffern verwenden die Zeichenreihenfolge: "10" < "9" ist wahr, weil "1" vor "9" kommt. Wandle beim Vergleich von Mengenangaben in Zahlen um. Auch bei Buchstaben mit Akzent ist Vorsicht nötig: ord("é") ist 233, daher ist "école" > "zoo" wahr. Diese eingebaute Reihenfolge folgt den Codepunkten, nicht der Wörterbuchreihenfolge einer Sprache.

Wichtige Erkenntnisse

  • Zeichenkettenprüfungen geben boolesche Werte zurück; Zeichenprüfungen prüfen außerdem, ob die Zeichenkette nicht leer ist.
  • isdecimal() ist für Eingaben, die für int() bestimmt sind, strenger als isdigit().
  • Verwende vor einer abgesicherten numerischen Umwandlung eine Zeichenprüfung.
  • Bereinige beide Zeichenketten einheitlich, wenn Groß- und Kleinschreibung sowie Leerzeichen an den Rändern keine Rolle spielen sollen.
  • Die Reihenfolge von Zeichenketten richtet sich nach dem ersten unterschiedlichen Codepunkt; für eine numerische Reihenfolge brauchst du Zahlenwerte.
4

Text in Teile zerlegen und Teile zu Text zusammenfügen

Eine Textzeile enthält oft mehrere nützliche Teile: Wörter in einer Nachricht, Felder in einem Datensatz oder Teile eines Codes. Das Aufteilen wandelt diese Zeile in eine geordnete Sammlung um, die du untersuchen, deren Elemente du zählen und umwandeln kannst. Das Zusammenfügen erstellt aus Teilen eine Zeichenkette mit einem Trennzeichen deiner Wahl. Die Regeln für Trennzeichen bestimmen, ob leere Felder und ursprüngliche Abstände erhalten bleiben. Die Wahl ist daher wichtig, wenn du Text bereinigst oder ihn genau rekonstruieren musst.

4.1 Eine Zeichenkette in eine Liste von Teilen zerlegen

split() wandelt eine Zeichenkette in eine Liste von Zeichenketten um. Eine Liste ist eine geordnete Sammlung, die in eckigen Klammern geschrieben wird. Du kannst ein Element über seinen Index lesen, die Elemente durchlaufen oder sie mit len() zählen.

Wähle Leerraumzeichen oder ein genaues Trennzeichen

Ohne Argument behandelt split() eine Folge von Leerraumzeichen als eine Grenze und ignoriert Leerraumzeichen an beiden Enden:

words = "  the quick  brown fox ".split()
print(words)       # ['the', 'quick', 'brown', 'fox']
print(len(words))  # 4
print(words[0])    # the

Bei einem ausdrücklich angegebenen Trennzeichen wird an jedem genauen Vorkommen getrennt. Aufeinanderfolgende Trennzeichen erhalten ein leeres Feld:

fields = "red,green,,blue".split(",")
# ["red", "green", "", "blue"]

Das leere dritte Element kann für einen Wert stehen, der leer gelassen wurde. Es zählt dennoch als Element der Liste.

AusdruckErgebnis
"a b".split()["a", "b"]
"a b".split(" ")["a", "", "b"]
"a,b".split(", ")["a,b"]

Ein Trennzeichen kann mehrere Zeichen enthalten, die aber alle übereinstimmen müssen. Kommt kein Trennzeichen vor, enthält das Ergebnis die gesamte ursprüngliche Zeichenkette als ein Element. Das Aufteilen an Komma und Leerzeichen unterscheidet sich daher vom Aufteilen an einem Komma.

Begrenze die Aufteilung

Das zweite Argument, maxsplit, begrenzt die Anzahl der Aufteilungen, nicht die Anzahl der entstehenden Elemente:

print("key=value=more".split("=", 1))
# ["key", "value=more"]
print("archive.tar.gz".rsplit(".", 1))
# ["archive.tar", "gz"]

split() beginnt links; rsplit() beginnt rechts. Eine Aufteilung von rechts trennt die letzte Dateiendung ab, ohne an früheren Punkten zu trennen.

Lies Felder und wandle Mengenangaben um
line = "Lovelace,Ada,1815"
parts = line.split(",")
if len(parts) == 3:
    last = parts[0]
    first = parts[1]
    year = int(parts[2])
    print(f"{first} {last} was born in {year}.")

Die Ausgabe ist "Ada Lovelace was born in 1815.". Die Längenprüfung verhindert, dass ein fehlendes Element einen IndexError verursacht. Sie prüft nicht, ob das Jahr numerisch ist; dafür braucht es eine separate Eingaberegel, wenn die Daten ungültig sein könnten.

Jeder aufgeteilte Teil ist zunächst eine Zeichenkette. Um "3 14 15" zu summieren, initialisiere total = 0, durchlaufe line.split() und addiere int(part). Das Ergebnis ist 32; eine Verkettung der nicht umgewandelten Teile würde die Ziffern zusammenfügen.

Ein ausdrücklich angegebenes Trennzeichen erhält die umgebenden Leerzeichen. "a, b".split(",") ergibt ["a", " b"]. Rufe für jeden Teil strip() auf, wenn diese Leerzeichen unerwünscht sind.

Erkenne zwei verwandte Ergebnisse

splitlines() trennt an Zeilenumbrüchen: "line one\nline two".splitlines() ergibt zwei Zeichenketten. partition("=") gibt immer ein dreiteiliges Tupel zurück: den Text vor dem ersten Trennzeichen, das Trennzeichen und den Text danach. "user=ada".partition("=") ergibt ("user", "=", "ada"); für "user" ergibt die Methode ("user", "", "").

Wichtige Erkenntnisse

  • split() gibt eine geordnete Liste von Zeichenketten zurück.
  • Das Aufteilen an Leerraumzeichen fasst Folgen zusammen; ausdrücklich angegebene Trennzeichen erhalten leere Felder.
  • maxsplit begrenzt die Anzahl der Aufteilungen und rsplit() beginnt rechts.
  • Prüfe die Anzahl der Felder vor dem Indexzugriff und wandle numerische Felder vor dem Rechnen um.
  • splitlines() trennt Zeilen; partition() gibt den Text davor, das Trennzeichen und den Text danach zurück.

4.2 Zeichenketten mit einem Trennzeichen zusammenfügen

join() erstellt aus einer Folge von Zeichenketten eine Zeichenkette. Die Zeichenkette vor dem Punkt liefert das Trennzeichen, das zwischen benachbarten Elementen erscheint.

Setze das Trennzeichen an den Anfang
colors = ["red", "green", "blue"]
text = ", ".join(colors)
print(text)  # red, green, blue

Lies dies als „Füge die Farben mit Komma und Leerzeichen zusammen“. Vor dem ersten und nach dem letzten Element steht kein Trennzeichen. Du kannst den Aufbau der Ausgabe ändern, indem du nur das Trennzeichen änderst:

AusdruckErgebnis
"".join(["a", "b", "c"])"abc"
"-".join(["a", "b", "c"])"a-b-c"
"\n".join(["a", "b", "c"])Ein Element pro Zeile

join() gehört zur Trennzeichenkette. ["a", "b"].join(",") löst einen AttributeError aus, weil die Liste keine Methode join hat. Ein einzelner Aufruf passt sich auch der Anzahl der Teile an; du musst für unterschiedliche Listenlängen keine neue Kette von +-Operationen schreiben.

Wandle Teile, die keine Zeichenketten sind, zuerst um

Alle Teile müssen bereits Zeichenketten sein. ", ".join([1, 2, 3]) löst einen TypeError aus. map(str, items) wendet str() auf jedes Element an, daher funktioniert dies:

items = [1, 2, 3]
text = " ".join(map(str, items))
print(text)  # 1 2 3

Das an map() übergebene str ist die Umwandlungsfunktion. join() erhält die umgewandelten Teile und gibt eine Zeichenkette zurück.

Eine Zeichenkette ist selbst eine Folge von einzeichenlangen Zeichenketten, daher ergibt " ".join("ABC") den Wert "A B C". Das kann nützlich sein. Übergibst du jedoch ein einzelnes Wort, obwohl du eine Liste von Wörtern meinst, werden Trennzeichen zwischen seine Zeichen gesetzt.

Forme Abstände und Trennzeichen um
text = "too   many    spaces"
cleaned = " ".join(text.split())
print(cleaned)  # too many spaces

Zuerst entstehen beim Aufteilen an Leerraumzeichen die drei Wörter. Das Zusammenfügen mit einem Leerzeichen legt einen einheitlichen Abstand fest und lässt keine Leerzeichen an den Rändern stehen. Die ursprünglichen Abstände gehen beim Aufteilen verloren.

Bei einem ausdrücklich angegebenen Trennzeichen erhalten die leeren Felder genügend Informationen, um den genauen Text wiederherzustellen. Ist s = "a,,b,", ergibt s.split(",") den Wert ["a", "", "b", ""], und ",".join(...) ergibt wieder "a,,b,". Für diese genaue Rekonstruktion muss das Trennzeichen dasselbe sein.

Ein anderes Trennzeichen ändert den Aufbau: "-".join("2026/07/04".split("/")) ergibt "2026-07-04". Hier ist auch replace("/", "-") eine direkte Lösung.

Sammle ein kurzes Ergebnis aus Wörtern

Für ein Akronym teile "portable network graphics" auf, beginne mit acronym = "" und füge für jedes Wort word[0].upper() hinzu. Das Aufteilen an Leerraumzeichen liefert nicht leere Wörter, deren erste Zeichen also existieren. So entsteht "PNG". Sind die Buchstaben bereits in einer Liste, erstellt ".".join(["P", "N", "G"]) den Wert "P.N.G" ohne abschließenden Punkt.

Wichtige Erkenntnisse

  • Rufe join() auf dem Trennzeichen auf und übergib die Teile als Argument.
  • Trennzeichen stehen nur zwischen den Teilen und jeder Teil muss eine Zeichenkette sein.
  • Das Aufteilen an Leerraumzeichen und Zusammenfügen mit einem Leerzeichen vereinheitlicht die Abstände.
  • Das Zusammenfügen mit demselben ausdrücklich angegebenen Trennzeichen kann Text einschließlich leerer Felder rekonstruieren.
5

Ausgaben mit f-Strings formatieren

Eine nützliche Ausgabe kombiniert einen korrekten Wert mit einem lesbaren Aufbau. Ein f-String setzt Werte und Ausdrücke direkt in Text ein. Anschließend kannst du das Aussehen jedes Felds festlegen: Nachkommastellen, Gruppierung, Vorzeichen, Datumsangaben oder ausgerichtete Spalten. Halte Berechnung und Anzeige getrennt. Ein Feld kann zwei Nachkommastellen oder einen gekürzten Namen anzeigen, während die ursprüngliche Variable ihren vollständigen Wert für spätere Berechnungen oder eine andere Anzeige behält.

5.1 Werte mit f-Strings in Text einsetzen

Ein f-String ist ein Zeichenkettenliteral mit f oder F vor seinem öffnenden Anführungszeichen. Darin stehen Ausdrücke in geschweiften Klammern, deren Werte in den Text eingesetzt werden.

Setze Variablen und Ausdrücke ein
name = "Ada"
age = 36
message = f"{name} is {age} years old."
print(message)  # Ada is 36 years old.

Zahlen werden innerhalb eines Felds automatisch zu Text. Dieselbe Nachricht ließe sich durch Verkettung und mit str(age) erzeugen, aber der f-String zeigt den endgültigen Aufbau an einer Stelle.

Die geschweiften Klammern können Rechnungen, Methodenaufrufe oder Funktionsaufrufe enthalten:

price = 4.5
qty = 3
print(f"Cost: {price * qty}")  # Cost: 13.5
print(f"Name: {name.upper()}")  # Name: ADA
word = "Python"
print(f"{len(word)} letters")  # 6 letters

Python wertet jeden Ausdruck aus, wenn die Zeile ausgeführt wird. Eine gespeicherte Zeichenkette bleibt nicht mit den Variablen verbunden, aus denen sie erstellt wurde. Ändert sich qty, nachdem message erstellt wurde, behält diese Zeichenkette ihre vorhandenen Zeichen.

Unterscheide gewöhnlichen Text von Feldern

Ohne das Präfix ist "Hello {name}" gewöhnlicher Text und behält seine geschweiften Klammern. Ein fehlendes f ist ein häufiger Grund dafür, dass ein Programm den Variablennamen statt seines Werts ausgibt. Mit Präfix löst ein Name, dem noch kein Wert zugewiesen wurde, bei der Ausführung des Ausdrucks einen NameError aus.

Um eine geschweifte Klammer als Zeichen anzuzeigen, verdopple sie:

x = 5
print(f"{{x}} = {x}")  # {x} = 5

Die verdoppelten geschweiften Klammern liefern den wörtlichen Text {x}. Das einfache Paar um das letzte x liefert seinen Wert.

Halte Ausdrücke mit Anführungszeichen lesbar

Verwende innerhalb eines Felds die andere Art von Anführungszeichen:

print(f"Shout: {'hi'.upper()}")  # Shout: HI

Diese Schreibweise funktioniert in allen Python-Versionen mit f-Strings, die mit 3.6 eingeführt wurden. Python 3.12 und neuer erlauben auch, die äußere Art von Anführungszeichen innerhalb des Felds erneut zu verwenden. Escape-Sequenzen funktionieren weiterhin in f-Strings: f"Name: {name}\nAge: {age}" gibt den Text in zwei Zeilen aus.

Für eine schnelle Anzeige bei der Fehlersuche akzeptieren Python 3.8 und neuer = nach einem Ausdruck. Mit x = 5 ergibt f"{x=}" den Wert "x=5"; mit total = 12 ergibt f"{total = }" den Wert "total = 12". Eingegebene Leerzeichen um den Ausdruck und das Gleichheitszeichen erscheinen in der Anzeige.

Lies ältere Formatierungsarten

Vorhandener Python-Code kann denselben Text auf andere Weise erstellen:

ArtBeispielErgebnis
f-Stringf"{name} is {age}""Ada is 36"
Zeichenkettenmethode"{} is {}".format(name, age)"Ada is 36"
Prozentformatierung"%s is %d" % (name, age)"Ada is 36"

str.format() füllt Felder in geschweiften Klammern aus seinen Argumenten. Nummerierte Felder können ein Argument erneut verwenden: "{0} {1} {0}".format("a", "b") ergibt "a b a". Bei der Prozentformatierung setzt %s Text und %d eine ganze Zahl ein. Wenn du diese Felder erkennst, kannst du auch Programme lesen, die geschrieben wurden, bevor f-Strings üblich waren.

Wichtige Erkenntnisse

  • Ein f-String braucht das Präfix f und geschweifte Klammern um jeden Ausdruck.
  • Felder werden bei der Ausführung des f-Strings ausgewertet; gespeicherter Text wird später nicht aktualisiert.
  • Doppelte geschweifte Klammern zeigen geschweifte Klammern als Zeichen an.
  • str.format() und Prozentformatierung sind ältere Möglichkeiten, Werte einzusetzen.

5.2 Zahlen, Datums- und Zeitangaben lesbar formatieren

Eine Formatangabe steuert, wie ein Wert angezeigt wird. Setze nach dem Ausdruck einen Doppelpunkt und dann die Anweisungen: f"{value:spec}". Die Formatierung gibt Text zurück und lässt den ursprünglichen Zahlenwert unverändert.

Lege Nachkommastellen fest und verstehe die Rundung

.Nf zeigt genau N Ziffern nach dem Dezimalpunkt an. f"{3.14159:.2f}" ergibt "3.14", f"{2/3:.3f}" ergibt "0.667" und f"{5:.2f}" ergibt "5.00". .0f zeigt keinen Dezimalpunkt an: f"{7.6:.0f}" ergibt "8".

Beim Runden wird der tatsächlich gespeicherte Wert verwendet. Die meisten Dezimalbrüche werden als sehr nahe binäre Approximationen gespeichert. Die Gleitkommazahl 2.675 liegt geringfügig unter diesem exakten Dezimalwert, daher ergibt f"{2.675:.2f}" den Wert "2.67". Werte genau in der Mitte werden zur geraden letzten Ziffer gerundet: 0.125 wird bei zwei Nachkommastellen als "0.12" angezeigt, während 0.375 als "0.38" angezeigt wird. f"{2.5:.0f}" ergibt "2". Programme, die exakte Geldberechnungen benötigen, speichern oft ganze Centbeträge als ganze Zahlen.

Ergänze Gruppierung und Prozentangaben
FormatangabeBeispielergebnis
f"{1234567:,}""1,234,567"
f"{1234567:_}""1_234_567"
f"{1234567.891:,.2f}""1,234,567.89"
f"{0.256:.1%}""25.6%"

Ein Komma gruppiert Tausender; der Punkt leitet die Genauigkeitsangabe für Nachkommastellen ein. Setze bei einem Dollarbetrag das Dollarzeichen außerhalb des Felds: Mit amount = 1250.5 ergibt f"${amount:,.2f}" den Wert "$1,250.50".

Der Typ % multipliziert mit 100 und fügt % hinzu. Verwende einen Bruchteil wie 0.256, um 25.6% anzuzeigen. Wenn du 25.6 übergibst, wird der angezeigte Prozentwert erneut multipliziert. Ohne ausdrückliche Genauigkeitsangabe zeigt % sechs Nachkommastellen an.

Formatiere ganze Zahlen und Datumsteile

d ist für ganze Zahlen bestimmt. f"{42:d}" funktioniert, aber f"{3.0:d}" löst einen ValueError aus, weil eine Gleitkommazahl keine ganze Zahl ist. Eine vorangestellte Null vor einer Breite füllt mit Nullen auf; ein Pluszeichen fordert ein sichtbares Vorzeichen an:

print(f"{7:03d}")   # 007
print(f"{5:+d}")    # +5
print(f"{-5:+d}")   # -5

Für Monat 7, Tag 4 und Jahr 2026 erstellt f"{month:02d}/{day:02d}/{year}" den Wert "07/04/2026". Für Stunde 9 und Minute 5 erstellt f"{hour}:{minute:02d}" den Wert "9:05". Das Auffüllen mit Nullen verhindert, dass eine einstellige Minute als "9:5" erscheint.

Kombiniere Anweisungen in der richtigen Reihenfolge

Die Reihenfolge ist Füllzeichen, Ausrichtung, Vorzeichen, Null, Breite, Gruppierung, Genauigkeit, Typ. Nicht benötigte Teile kannst du weglassen. f"{12345.678:>12,.2f}" verwendet Rechtsausrichtung, Breite 12, Gruppierung mit Komma und zwei Nachkommastellen und ergibt " 12,345.68".

Die Genauigkeit kann aus einer anderen Variablen stammen: Mit places = 3 ergibt f"{3.14159:.{places}f}" den Wert "3.142". Dieselben Formatangaben funktionieren in format(value, spec) und Feldern von str.format(). Behalte die ursprüngliche Zahl für Berechnungen; round(value, 2) gibt eine gerundete Zahl zurück, wenn die Berechnung das verlangt.

Wichtige Erkenntnisse

  • Ein Doppelpunkt leitet Anzeigeanweisungen ein; der gespeicherte Wert ändert sich nicht.
  • Die Festkommagenauigkeit legt Nachkommastellen fest, und die Rundung folgt dem gespeicherten Wert.
  • Ein Komma gruppiert Tausender; % multipliziert einen Bruchteil mit 100.
  • d benötigt eine ganze Zahl; das Auffüllen mit Nullen hält Datums- und Zeitteile lesbar.
  • Behalte Zahlen zum Rechnen und formatiere sie bei der Anzeige.

5.3 Ausgaben in Spalten ausrichten

Eine Feldbreite reserviert eine Mindestanzahl von Zeichenpositionen für einen Wert. Die Kombination von Breiten macht kurze Tabellen und Kassenbons in einem Terminal lesbar.

Wähle Breite und Ausrichtung

Zeichenketten werden standardmäßig linksbündig und Zahlen rechtsbündig ausgerichtet. f"{'cat':6}" ergibt "cat ", während f"{42:6}" den Wert " 42" ergibt. Verwende ein Ausrichtungszeichen für eine ausdrückliche Auswahl:

ZeichenBedeutungBeispiel
<Linksf"{'hi':<6}" ergibt "hi "
>Rechtsf"{'hi':>6}" ergibt " hi"
^Zentriertf"{'hi':^6}" ergibt " hi "

Wenn beim Zentrieren eine ungerade Anzahl von Leerzeichen bleibt, setzt die Ausrichtung im f-String das zusätzliche Leerzeichen nach rechts: f"{'hi':^7}" ergibt " hi ".

Die Breite ist ein Mindestwert. f"{'elephant':4}" ergibt weiterhin "elephant"; das Wort wird nicht abgeschnitten. Ein langer Eintrag kann daher spätere Spalten verschieben.

Ergänze ein Füllzeichen oder begrenze Text

Ein Füllzeichen steht unmittelbar vor dem Ausrichtungszeichen. f"{'hi':*^10}" ergibt "****hi****", und f"{7:0>3}" ergibt "007". Ein Füllzeichen benötigt ein Ausrichtungszeichen. f"{'':-^20}" füllt ein leeres Feld mit zwanzig Strichen.

Die Zeichenkettengenauigkeit begrenzt die Anzahl der angezeigten Zeichen:

place = "Washington"
print(f"{place:.4}")      # Wash
print(f"|{place:10.4}|")  # |Wash      |

Die Genauigkeit begrenzt den angezeigten Text zuerst auf vier Zeichen; anschließend füllt die Breite ihn auf zehn auf. Verwende passende Breite und Genauigkeit, wenn Text innerhalb einer festen Spalte bleiben muss. Das ursprüngliche place ist weiterhin "Washington".

Erstelle eine Kassenbonzeile
item = "Apples"
qty = 3
price = 4.50
row = f"{item:<8}{qty:>4}{qty * price:>9.2f}"
print(row)

Das Ergebnis ist "Apples 3 13.50". Das Artikelfeld enthält sechs Buchstaben und zwei Leerzeichen. Das Mengenfeld fügt drei Leerzeichen vor 3 hinzu. Das Betragsfeld fügt vier Leerzeichen vor 13.50 hinzu, das fünf Zeichen hat. Zusammen belegen die Felder 21 Zeichen.

Verwende diese Breiten erneut für Brot (1 zu 2,25) und Kaffee (2 zu 11,00). Ihre Zeilen lauten "Bread 1 2.25" und "Coffee 2 22.00". Eine Summenzeile kann die ersten beiden Felder kombinieren:

print(f"{'Total':<12}{37.75:>9.2f}")
# "Total           37.75"

Das Betragsfeld beginnt an derselben Position und hat dieselbe Anzahl von Nachkommastellen, sodass die Beträge untereinander stehen.

Passe den Aufbau an die Anzeige an

Wähle Breiten, die Platz für die längsten Einträge und Abstände lassen, oder kürze Text gezielt. Eine Variable kann eine Breite liefern: Mit w = 10 füllt f"{name:<{w}}" den Wert von name auf zehn Zeichen auf.

Zeichenbasierte Spalten brauchen eine nichtproportionale Schrift, wie sie ein Terminal verwendet. Für einfaches Auffüllen außerhalb eines f-Strings verhalten sich ljust() und rjust() wie < und >. center() und ^ zentrieren beide Text, können eine ungerade Auffüllung aber unterschiedlich aufteilen: "hi".center(7) ergibt " hi ", während f"{'hi':^7}" den Wert " hi " ergibt.

Wichtige Erkenntnisse

  • Die Breite legt ein Minimum fest; die Ausrichtung bestimmt, wo aufgefüllt wird.
  • Das Füllzeichen steht vor dem Ausrichtungszeichen, und die Zeichenkettengenauigkeit begrenzt die angezeigten Zeichen.
  • Verwende in jeder Zeile dieselben Feldbreiten und dieselbe Anzahl von Nachkommastellen.
  • Wähle für zeichenbasierte Spalten eine Anzeige mit nichtproportionaler Schrift.
  • center() und die Zentrierung im f-String können eine ungerade Auffüllung unterschiedlich platzieren.

Zeichenketten in Python: Beispiele

5 Interaktive Lektionen

1

Einen Code Zeichen für Zeichen zerlegen

14 Schritte
Erstelle eine Beschriftung, lies Positionen und wähle Abschnitte aus oder kehre sie um.
  1. 1
    EinführungLies eine Lagerbeschriftung

    Eine Lagerbeschriftung enthält Buchstaben, einen Bindestrich und Ziffern: "Box-482". Dies ist eine Zeichenkette, und jedes Zeichen hat einen Index. Ein Programm benötigt möglicherweise den ersten Buchstaben, die letzte Ziffer oder den ganzen Zahlenabschnitt (einen Ausschnitt).

    Du wirst die Beschriftung erstellen, ihre Positionen aufzeichnen und ihre Teile auswählen. Verfolge bei jedem Schritt die genauen Zeichen; ein Leerzeichen oder Trennzeichen wirkt sich ebenso auf die Positionen aus wie ein Buchstabe.

  2. 2
    ErklärungTrenne Syntax von gespeichertem Text

    Eine Zeichenkette ist eine geordnete Folge von Zeichen. Die äußeren Anführungszeichen teilen Python mit, wo ein Literal beginnt und endet; sie gehen nicht in seinen Wert ein.

    label = "Box-482"
    print(len(label))  # 7
    

    Der Bindestrich ist eines der sieben Zeichen. Einfache Anführungszeichen könnten denselben Wert markieren. Du kannst auch leeren Text mit "" speichern, der die Länge null hat.

  3. 3
    BeispielSetze die Beschriftung aus Teilen zusammen

    Beginne mit dem Wort und einem Zahlencode:

    kind = "Box"
    number = 482
    label = kind + "-" + str(number)
    

    str(number) erzeugt "482", dann bilden die beiden Verkettungen "Box-482". Der Bindestrich erscheint, weil er als Teil angegeben wird. Ohne str() würde versucht, eine Zeichenkette und eine ganze Zahl zu verketten, was einen TypeError auslöst.

  4. 4
    HerausforderungZähle die Zeichen eines Werts mit einer Escape-Sequenz

    Ein kurzer Hinweis ist als notice = "A\nB!" gespeichert. Welche Länge hat er und wie viele Zeilen zeigt print(notice) an?

    ---reveal---

    Die Länge ist 4: A, ein Zeilenumbruch, B und !. Die Ausgabe zeigt zwei Zeilen, mit A in der ersten und B! in der zweiten. Die Escape-Sequenz wird beim Lesen des Literals verarbeitet; die Ausgabe zeigt den bereits im Wert enthaltenen Zeilenumbruch.

  5. 5
    AnalogieGib jeder Position eine Nummer

    Stell dir die Beschriftung als sieben nummerierte Stellen in einer Reihe vor. Die Nummerierung beginnt bei null:

    Character: B o x - 4 8 2
    Index:     0 1 2 3 4 5 6
    

    label[0] ergibt "B" und label[4] ergibt "4". Das Ergebnis ist eine einzeichenlange Zeichenkette, auch wenn es wie eine Zahl aussieht. Position 7 wäre die achte Stelle, die in dieser Beschriftung nicht existiert.

  6. 6
    ErklärungZähle vom letzten Zeichen zurück

    Negative Indizes verwenden das Ende als Bezugspunkt. Für "Box-482" ist label[-1] gleich "2" und label[-3] gleich "4".

    Der entsprechende nicht negative Index zu -3 ist len(label) - 3, also 4. Beide wählen dasselbe Zeichen. Am Ende gibt es keine negative Nullposition: -0 ist einfach 0 und wählt daher weiterhin das erste Zeichen.

  7. 7
    HerausforderungWähle ein Zeichen aus, ohne Code auszuführen

    Was ist für code = "Tin-739" der Wert von code[-2]? Würde code[len(code)] das letzte Zeichen auswählen?

    ---reveal---

    code[-2] ist "3", das Zeichen direkt vor der letzten 9. code[len(code)] löst einen IndexError aus: Länge sieben bedeutet Indizes von null bis sechs. Der Ausdruck für das letzte Zeichen lautet code[len(code) - 1] oder code[-1].

  8. 8
    TippSichere einen Zeichenzugriff ab

    Eine leere Eingabe hat kein Zeichen an Index null. Setze die Längenprüfung vor den Zeichenzugriff:

    if len(label) > 0 and label[0] == "B":
        print("Begins with B")
    

    Ist die erste Prüfung falsch, überspringt and die zweite. Diese Reihenfolge ist wichtig: Stünde label[0] zuerst, würde der Zugriff bei leerer Eingabe bereits fehlschlagen, bevor Python die Längenprüfung erreichen könnte.

  9. 9
    ErklärungWähle den ganzen Zahlenabschnitt aus

    Ein Ausschnitt schließt seinen Start ein und seine Endgrenze aus:

    label = "Box-482"
    number_text = label[4:7]
    print(number_text)  # 482
    

    Die Positionen 4, 5 und 6 liefern die Ziffern. Die Endgrenze 7 liegt nach dem letzten Zeichen. Da die Auswahl bis zum Ende reicht, liefert label[4:] dasselbe Ergebnis. Es findet keine Umwandlung statt; der Ausschnitt ist weiterhin Text.

  10. 10
    BeispielLass die beiden Ausschnitte aneinandergrenzen

    Der linke Abschnitt endet an der Grenze, an der der Zahlenabschnitt beginnt:

    left = label[:4]   # "Box-"
    right = label[4:]  # "482"
    print(left + right)  # Box-482
    

    Die gemeinsame Grenze 4 lässt die Teile ohne Lücke oder Überlappung aneinandergrenzen. Deshalb setzt s[:k] + s[k:] eine Zeichenkette wieder zusammen. Mit label[:3] würde der Bindestrich im zusammengesetzten Ergebnis fehlen.

  11. 11
    KernaussageEine Ausschnittsgrenze kann über das Ende hinausreichen

    Vergleiche label[99] mit label[4:99]. Der einzelne Index löst einen IndexError aus, aber der Ausschnitt ergibt "482".

    Eine Ausschnittsgrenze jenseits der Zeichenkette wird auf deren Ende begrenzt. label[99:] ergibt daher leeren Text. Das ist nützlich, um bis zu einer bestimmten Textlänge auszuwählen. Es bedeutet aber auch, dass ein falscher Ausschnitt unbemerkt weniger Zeichen als erwartet zurückgeben kann.

  12. 12
    BeispielKehre nur die ausgewählten Ziffern um

    Wähle zuerst die Ziffern aus und kehre dann diese neue Zeichenkette um:

    digits = label[4:]
    backward = digits[::-1]
    print(backward)  # 284
    

    Eine negative Schrittweite führt rückwärts. Sind beide Grenzen weggelassen, durchläuft der Ausschnitt alle Zeichen vom letzten bis zum ersten. Eine positive Schrittweite von zwei würde stattdessen jede zweite Position überspringen. Eine Schrittweite von null ist ungültig und löst einen ValueError aus.

  13. 13
    HerausforderungErstelle eine veränderte Beschriftung

    Was ergibt für label = "Jar-916" der Ausdruck label[:4] + label[4:][::-1]? Erkläre, welcher Abschnitt seine Reihenfolge behält.

    ---reveal---

    Das Ergebnis ist "Jar-619". Der erste Ausschnitt lässt "Jar-" unverändert. Der zweite wählt zuerst "916" aus, dann kehrt [::-1] nur diese Ziffern zu "619" um. Die Verkettung fügt die beiden Ergebnisse zusammen, ohne ein weiteres Trennzeichen hinzuzufügen.

  14. 14
    ZusammenfassungUnterscheide Positionen und Grenzen

    Verwende einen Index für ein Zeichen und einen Ausschnitt für einen Abschnitt. Positionen beginnen bei null; negative Indizes zählen vom Ende. Ein Ausschnitt lässt seine Endgrenze aus, und seine Schrittweite steuert Richtung und Abstand.

    Verfolge zuerst die gespeicherten Zeichen und werte dann jede Auswahl aus, bevor du die Ergebnisse kombinierst.

2

Einen maskierten Code mit einer Schleife erstellen

12 Schritte
Verfolge Zähler und das Ansammeln von Zeichenketten und erkläre dann, warum der ursprüngliche Text unverändert bleibt.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungBehalte Ziffern und verbirg Buchstaben
  2. 2
    ErklärungBereite die laufenden Ergebnisse vor
  3. 3
    BeispielTriff für jedes Zeichen eine Entscheidung
  4. 4
    BeispielVerfolge die restlichen Durchläufe
  5. 5
    HerausforderungVerfolge eine andere Eingabe
  6. 6
    VerbindungErgänze Positionen nur bei Bedarf
  7. 7
    TippLass Platz für ein nächstes Zeichen
  8. 8
    KernaussageDie alte Zeichenkette wurde nicht verändert
  9. 9
    BeispielBehalte einen weiteren Namen für den alten Wert
  10. 10
    BeispielErsetze ein Zeichen an einer Position mit Ausschnitten
  11. 11
    HerausforderungVerfolge den Wert und seine gespeicherte Kopie
  12. 12
    ZusammenfassungVerfolge jede Variable durch die Schleife
3

Eine Nachricht mit Kennzeichen lesen und validieren

16 Schritte
Bereinige eingegebenen Text, finde Kennzeichen und prüfe Eingaben vor der numerischen Umwandlung.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungVerarbeite eine kurze Anfrage
  2. 2
    BeispielEntferne die Leerraumzeichen an den Rändern
  3. 3
    ErklärungRufe Methoden auf und verkette sie
  4. 4
    HerausforderungWähle eine Operation für ein genaues Ende
  5. 5
    VerbindungVergleiche Text nach Vereinheitlichung der Groß- und Kleinschreibung
  6. 6
    ErklärungFrage, ob, wo oder wie oft
  7. 7
    BeispielFinde den Anfang des Namens
  8. 8
    BeispielFinde das Ende nach dem Anfang
  9. 9
    TippBehandle eine Position nicht als Prüfung auf Vorhandensein
  10. 10
    HerausforderungNimm ein Feld zwischen Kennzeichen heraus
  11. 11
    BeispielNimm den Text zur Platzanzahl heraus
  12. 12
    ErklärungPrüfe vor der Umwandlung
  13. 13
    HerausforderungWende dieselbe Eingaberegel an
  14. 14
    KernaussageEin Textvergleich vergleicht keine Zahlenwerte
  15. 15
    HerausforderungBehandle ein bereinigtes Feld und eine fehlgeschlagene Suche
  16. 16
    ZusammenfassungVerwende jedes Ergebnis für seinen Zweck
4

Einen Datensatz in Felder und lesbaren Text umwandeln

12 Schritte
Teile einen kleinen Datensatz auf, wandle seine Mengenangaben um und füge Teile nach bewusst gewählten Trennzeichenregeln zusammen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungLies einen einfachen Datensatz
  2. 2
    ErklärungTeile an einem genauen Trennzeichen auf
  3. 3
    BeispielPrüfe die Felder, bevor du sie liest
  4. 4
    BeispielRechne mit umgewandelten Werten
  5. 5
    HerausforderungErhalte einen fehlenden Wert
  6. 6
    KernaussageDas Aufteilen an Leerraumzeichen ergibt andere Teile
  7. 7
    TippBeende die Aufteilung nach der benötigten Trennung
  8. 8
    BeispielFüge Ausgabeteile mit einem Trennzeichen zusammen
  9. 9
    HerausforderungSage das Zusammenfügen mit leeren Teilen voraus
  10. 10
    VerbindungWähle Bereinigung oder genaue Rekonstruktion
  11. 11
    HerausforderungKorrigiere die Anzeige eines Datensatzes
  12. 12
    ZusammenfassungVerfolge die Datentypen im Datensatz
5

Einen kleinen Kassenbon formatieren

16 Schritte
Erstelle f-Strings, wähle Zahlenformate und richte eine Kassenbonzeile aus, ohne die zugrunde liegenden Daten zu ändern.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungGib einer Berechnung einen lesbaren Aufbau
  2. 2
    BeispielSetze den Betrag der Position ein
  3. 3
    HerausforderungAchte darauf, wann der Ausdruck ausgeführt wird
  4. 4
    TippHalte die Feldsyntax sichtbar
  5. 5
    ErklärungWähle zwei Nachkommastellen
  6. 6
    KernaussageRunde den tatsächlich gespeicherten Wert
  7. 7
    BeispielZeige eine Rate als Prozentangabe an
  8. 8
    HerausforderungKombiniere Gruppierung und Nachkommastellen
  9. 9
    VerbindungFülle Datums- und Zeitteile auf
  10. 10
    ErklärungReserviere die Felder des Kassenbons
  11. 11
    BeispielZähle die Leerzeichen in einer Zeile
  12. 12
    TippDie Breite kürzt einen langen Artikelnamen nicht
  13. 13
    HerausforderungLies ein aufgefülltes und zentriertes Feld
  14. 14
    HerausforderungErstelle eine zweite Kassenbonzeile
  15. 15
    VerbindungPasse die Schrift an den Aufbau an
  16. 16
    ZusammenfassungHalte Berechnung und Darstellung getrennt

Zeichenketten in Python: Übungsaufgaben

50 Übungsfragen in 5 Sets

Set 1: Literale, Indizes und Ausschnitte lesen10 Übungsfragen

Frage 1 von 10

Welchen Wert hat len("x\ty!")?
  1. 5
  2. 4
  3. 6
  4. 3
Antwort zeigenAntwort ausblenden
Antwort: B
Die Escape-Sequenz für den Tabulator ist ein Zeichen, daher enthält der Wert x, einen Tabulator, y und !. Die äußeren Anführungszeichen und die beiden geschriebenen Symbole für \t sind keine zusätzlichen Zeichen im Wert. Würdest du die Escape-Sequenz als umgekehrten Schrägstrich und Buchstaben zählen, ergäbe sich stattdessen fünf.

Frage 2 von 10

Welchen Text erzeugt "Tag: " + str(8 * 2)?
  1. "Tag: 82"
  2. "Tag: 8 * 2"
  3. "Tag: 16.0"
  4. "Tag: 16"
Antwort zeigenAntwort ausblenden
Antwort: D
Die Multiplikation wird zuerst ausgeführt und ergibt die ganze Zahl 16, die str() in "16" umwandelt. Die Verkettung fügt sie dann nach "Tag: " hinzu. Um die geschriebenen Ziffern zu "82" zusammenzufügen, wären Zeichenketten als Operanden nötig; der Ausdruck hier multipliziert vor der Umwandlung zwei ganze Zahlen.

Frage 3 von 10

Was speichert r"D:\temp" nach dem Doppelpunkt?
  1. Einen umgekehrten Schrägstrich, gefolgt von temp.
  2. Einen Tabulator, gefolgt von emp.
  3. Zwei umgekehrte Schrägstriche, gefolgt von temp.
  4. Einen Zeilenumbruch, gefolgt von temp.
Antwort zeigenAntwort ausblenden
Antwort: A
Das Präfix für eine rohe Zeichenkette behält den umgekehrten Schrägstrich als wörtliches Zeichen bei, sodass er vor den Buchstaben temp stehen bleibt. In einem gewöhnlichen Literal würde das anfängliche \t zu einem Tabulator. Die rohe Schreibweise fügt der gespeicherten Zeichenkette keinen zweiten umgekehrten Schrägstrich hinzu; der eine geschriebene Schrägstrich bleibt ein Zeichen.

Frage 4 von 10

Was ist bei code = "R7K2" der Wert von code[-2]?
  1. "7"
  2. "2"
  3. "K"
  4. "R"
Antwort zeigenAntwort ausblenden
Antwort: C
Negative Indizes zählen vom Ende: -1 wählt "2" und -2 wählt "K". Der Wert ist eine einzeichenlange Zeichenkette. Würdest du zwei Zeichen von links zählen, würdest du "7" auswählen, aber das Minuszeichen macht das Ende der Zeichenkette zum Ausgangspunkt.

Frage 5 von 10

Was gibt bei word = "orbit" der Ausdruck word[len(word) // 2] zurück?
  1. "r"
  2. "i"
  3. Der Ausdruck löst einen TypeError aus.
  4. "b"
Antwort zeigenAntwort ausblenden
Antwort: D
Die Länge ist fünf, daher ergibt die abrundende Division durch zwei den ganzzahligen Index 2. Die Indizes 0, 1 und 2 wählen o, r und b aus, sodass "b" das mittlere Zeichen ist. Ein TypeError würde bei einer Gleitkommazahl als Index auftreten, aber // erzeugt hier eine ganze Zahl.

Frage 6 von 10

Was geschieht, wenn dieser Code mit line = "" ausgeführt wird?

if len(line) > 0 and line[0] == ";":
    print("Skip")
  1. Er löst vor der Längenprüfung einen IndexError aus.
  2. Er gibt nichts aus und löst keinen Fehler aus.
  3. Er gibt einmal "Skip" aus und endet.
  4. Er löst bei der Bedingung einen TypeError aus.
Antwort zeigenAntwort ausblenden
Antwort: B
Die Längenprüfung ist falsch, daher überspringt and den Zeichenzugriff und der Körper wird nicht ausgeführt. Die leere Zeichenkette würde einen IndexError verursachen, wenn line[0] ausgewertet würde. Hier verhindert die Reihenfolge der Prüfungen, dass der Index bei leerer Eingabe verwendet wird.

Frage 7 von 10

Was ist "notebook"[2:5]?
  1. "teb"
  2. "tebo"
  3. "ote"
  4. "te"
Antwort zeigenAntwort ausblenden
Antwort: A
Der Ausschnitt wählt die Indizes 2, 3 und 4 aus: t, e und b. Der Endindex 5 ist ausgeschlossen, daher erscheint das dortige o nicht. Mit diesem Zeichen ergäbe sich "tebo"; dazu müsste die Endgrenze als eingeschlossen statt als erste ausgelassene Position behandelt werden.

Frage 8 von 10

Was ist das Ergebnis von "map"[1:50]?
  1. "a"
  2. ""
  3. "ap"
  4. Der Ausdruck löst einen IndexError aus.
Antwort zeigenAntwort ausblenden
Antwort: C
Der Ausschnitt beginnt bei Index 1 und reicht bis zum Ende, weil die zu große Endgrenze auf das Ende begrenzt wird. Dadurch bleiben a und p erhalten und ergeben "ap". Ein Zugriff auf ein einzelnes Zeichen wie "map"[50] würde einen IndexError auslösen, aber Ausschnittsgrenzen können über die vorhandenen Zeichen hinausreichen.

Frage 9 von 10

Was gibt "0123456789"[1:8:3] zurück?
  1. "148"
  2. "147"
  3. "1357"
  4. "1478"
Antwort zeigenAntwort ausblenden
Antwort: B
Beginne bei Index 1 und gehe jeweils drei Positionen weiter: 1, 4 und 7. Die nächste Position wäre 10 und läge damit jenseits der ausgeschlossenen Endgrenze 8. "1357" verwendet eine Schrittweite von zwei; das dritte Ausschnittsargument ist der Abstand zwischen den ausgewählten Positionen, nicht die Anzahl der gewünschten Zeichen.

Frage 10 von 10

Was ist bei s = "red-blue" der Wert von s[-4:][::-1] + s[:3]?
  1. "derblue"
  2. "eulb-red"
  3. "eulbred"
  4. "blueeulb"
Antwort zeigenAntwort ausblenden
Antwort: C
Die letzten vier Zeichen sind "blue"; die Umkehrung dieses Ausschnitts ergibt "eulb". Der Anfangsteil s[:3] ist "red", daher ergibt die Verkettung "eulbred". Der Bindestrich bei Index 3 gehört zu keinem der beiden ausgewählten Ausschnitte und wird beim Zusammenfügen der Zeichenketten nicht automatisch eingefügt.
Set 2: Schleifen und neue Zeichenkettenwerte nachvollziehen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Wie oft wird der Körper von for ch in "a b!": ausgeführt?
  1. 2
  2. 3
  3. 4
  4. 5
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Was wird ausgegeben?

total = 0
for ch in "Route 68":
    if ch.isdecimal():
        total += int(ch)
print(total)
  1. 14
  2. 2
  3. 68
  4. 8
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Was wird ausgegeben?

for ch in "Cab 53A":
    if ch.isdigit():
        print(ch)
        break
  1. 3
  2. 53
  3. 5 und dann 3 in getrennten Zeilen
  4. 5
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Was wird ausgegeben?

for i, ch in enumerate("lamp"):
    if i % 2 == 1:
        print(ch, end="")
  1. lm
  2. ap
  3. am
  4. lp
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Welcher Wert wird ausgegeben?

s = "aaabb"
pairs = 0
for i in range(len(s) - 1):
    if s[i] == s[i + 1]:
        pairs += 1
print(pairs)
  1. 2
  2. 3
  3. 4
  4. 1
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Welcher Text wird ausgegeben?

s = "north"
i = len(s) - 1
result = ""
while i >= 0:
    result += s[i]
    i -= 2
print(result)
  1. hrn
  2. htr
  3. nrt
  4. hon
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was enthält b nach diesem Code?

a = "pine"
b = a
a = a.upper()
  1. "PINE" (alles großgeschrieben)
  2. "Pine" (nur der Anfangsbuchstabe groß)
  3. "" (leerer Text)
  4. "pine" (der ursprüngliche Text)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Was ergibt bei s = "stone" der Ausdruck s[:2] + "X" + s[3:]?
  1. "stXone"
  2. "sXone"
  3. "stXne"
  4. "stXo"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Welches Wertepaar wird ausgegeben?

word = "muse"
result = ""
for ch in word:
    if ch in "aeiou":
        result = ch.upper() + result
    else:
        result = ch + result
print(word, result)
  1. muse mUsE (unverändertes Wort, verändertes Ergebnis in ursprünglicher Reihenfolge)
  2. mUsE EsUm (verändertes Wort, umgekehrtes verändertes Ergebnis)
  3. muse Esum (unverändertes Wort, ein Großbuchstabe im Ergebnis)
  4. muse EsUm (unverändertes Wort, umgekehrtes verändertes Ergebnis)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Was gibt dieser Code aus?

s = "  west  "
s.strip()
s = s + "!"
print(len(s))
  1. 5
  2. 6
  3. 9
  4. 8
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Text bereinigen, durchsuchen und validieren10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Was gibt " Go Home ".strip().lower() zurück?
  1. "gohome" (keine Leerzeichen)
  2. " go home " (äußere Leerzeichen erhalten)
  3. "Go Home" (ursprüngliche Groß- und Kleinschreibung)
  4. "go home" (ein Leerzeichen im Inneren)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Was gibt "test.txt".rstrip(".txt") zurück?
  1. "test"
  2. "test."
  3. "tes"
  4. "test.tx"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Was ist "A-a-a".replace("a", "x", 1).lower()?
  1. "a-x-a" (erster kleiner Treffer geändert)
  2. "a-x-x" (beide kleinen Treffer geändert)
  3. "x-a-a" (Anfangsbuchstabe geändert)
  4. "A-x-a" (Großschreibung am Anfang erhalten)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Was ist "cocoa".rfind("co")?
  1. 0
  2. 2
  3. 3
  4. 4
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Was wird ausgegeben?

s = "label"
p = s.find(":")
print(s[p:])
  1. l
  2. label
  3. Eine leere Zeile
  4. Der Code löst einen ValueError aus.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Welcher Text wird herausgenommen?

s = "Item [K9] ready [Q2]"
a = s.find("[")
b = s.find("]", a)
result = s[a + 1:b]
  1. "[K9"
  2. "Q2"
  3. "K9"
  4. "K9] ready [Q2"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was ist "abababa".count("aba")?
  1. 3
  2. 1
  3. 0
  4. 2
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein Formular verwendet s = raw.strip() und danach s.isdecimal() and int(s) > 0. Besteht die ursprüngliche Eingabe " 08 " die Prüfung und welche ganze Zahl stellt sie dar?
  1. Sie besteht wegen der äußeren Leerzeichen nicht.
  2. Sie besteht und stellt 8 dar.
  3. Sie besteht und behält den Text "08".
  4. Sie besteht wegen der führenden Null nicht.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Welches Wertepaar ergibt sich für a = " Cedar " und b = "cedar" aus a == b und a.strip().casefold() == b.strip().casefold()?
  1. True, True
  2. False, False
  3. False, True
  4. True, False
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Welches Wertepaar ergibt sich aus "24" < "7" und int("24") < int("7")?
  1. False, False
  2. True, False
  3. False, True
  4. True, True
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Datensätze aufteilen und Text wieder zusammensetzen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Was ist len(" one\ttwo three ".split())?
  1. 4
  2. 3
  3. 5
  4. 6
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Was gibt "A||C|".split("|") zurück?
  1. ["A", "", "C", ""]
  2. ["A", "C"]
  3. ["A", "", "C"]
  4. ["A", "|C|"]
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Was ist "red;blue".split("; ")?
  1. ["red", "blue"]
  2. ["red", " blue"]
  3. ["red;blue"]
  4. ["red;", "blue"]
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Was wird ausgegeben?

parts = "Mina;4;6".split(";")
total = int(parts[1]) + int(parts[2])
print(f"{parts[0]}:{total}")
  1. Mina:46
  2. Mina:4
  3. Mina:6
  4. Mina:10
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Was ist "mode=fast=quiet".split("=", 1)[1]?
  1. "fast"
  2. "quiet"
  3. "fast=quiet"
  4. "mode=fast"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Was gibt "status".partition(":") zurück?
  1. ("", ":", "status")
  2. ("status", ":", "")
  3. ("status", "", "")
  4. ("", "", "status")
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was ergibt " / ".join("ab")?
  1. "a / b"
  2. "ab"
  3. "a / b / "
  4. " / a / b"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Was ist "-".join("x::z:".split(":"))?
  1. "x-z"
  2. "x--z-"
  3. "x-z-"
  4. "x--z"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Welcher Text wird in result = " ".join(" bright\n blue sky ".split()) gespeichert?
  1. " bright blue sky "
  2. "brightblue sky"
  3. "bright blue sky"
  4. "bright blue sky"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Was ergibt ": ".join(map(str, [6, 11]))?
  1. "6: 11"
  2. "6:11"
  3. "6: 11: "
  4. Der Ausdruck löst einen TypeError aus.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 5: Lesbare Werte und Spalten erstellen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Was ergibt bei name = "Luca" der Ausdruck f"Hi, {name.upper()}!"?
  1. "Hi, Luca!" (ursprüngliche Schreibweise des Namens)
  2. "Hi, {name.upper()}!" (nicht ausgewertetes Feld)
  3. "Hi, LUCA!" (Name großgeschrieben)
  4. "HI, LUCA!" (ganze Nachricht großgeschrieben)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Welcher Text wird ausgegeben?

n = 4
label = f"{{n}}={n + 2}"
n = 9
print(label)
  1. {n}=11
  2. {n}=6
  3. 4=6
  4. 9=11
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Was ist f"{4826.5:,.2f}"?
  1. "4826.50"
  2. "4.826,50"
  3. "4,826.5"
  4. "4,826.50"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Was ist f"{0.0375:.1%}"?
  1. "0.0%"
  2. "3.8%"
  3. "3.7%"
  4. "37.5%"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Welches Wertepaar ergibt sich bei n = 0.125 aus f"{n:.2f}" und n == 0.125?
  1. "0.12", True
  2. "0.13", True
  3. "0.12", False
  4. "0.13", False
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Was ergibt bei month = 11, day = 6, year = 2028, hour = 7 und minute = 3 der Ausdruck f"{month:02d}/{day:02d}/{year} {hour}:{minute:02d}"?
  1. "11/06/2028 7:03"
  2. "06/11/2028 7:03"
  3. "11/6/2028 7:3"
  4. "11/06/2028 07:03"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was ergibt f"|{'owl':>5}|"?
  1. "|owl |"
  2. "| owl |"
  3. "| owl|"
  4. "| owl|"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Welchen Inhalt und welche Länge hat bei name = "seahorse" der Ausdruck f"{name:6.4}"?
  1. "seahorse", Länge 8
  2. "seah", Länge 4
  3. "seah ", Länge 6
  4. " seah", Länge 6
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Was ist für item = "Tea", qty = 2 und price = 3.75 der Wert von f"{item:<5}{qty:>2}{qty * price:>7.2f}"?
  1. "Tea 2 3.75"
  2. "Tea 2 7.50"
  3. "Tea 2 7.50"
  4. "Tea 2 7.500"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Was ergibt f"{'otter':3}"?
  1. "ott"
  2. "ter"
  3. "otter"
  4. Der Ausdruck löst einen ValueError aus.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

69 Schlüsselbegriffe, jeweils mit Definition

A

Akkumulator
Ein Akkumulator ist eine Variable, die über Schleifendurchläufe hinweg ein laufendes Ergebnis aufbaut, etwa eine Gesamtsumme oder eine neu erstellte Zeichenkette.
Ein Zeichenkettenakkumulator, der bei "" beginnt, kann nur Zeichen sammeln, die keine Leerzeichen sind, um aus "a b c" den Wert "abc" zu erstellen.
Auffüllen
Das Auffüllen ergänzt Zeichen, um eine Mindestfeldbreite zu erreichen. Dabei werden Leerzeichen, Nullen oder gewählte Füllzeichen verwendet, während längere Werte erhalten bleiben.
Das Auffüllen mit "5".zfill(3) erzeugt "005", während das bereits längere "1234" bei Breite drei unverändert bleibt.
Auffüllen mit Nullen
Das Auffüllen mit Nullen ergänzt führende Nullen, um eine numerische Mindestbreite zu erreichen. So eignen sich kurze ganze Zahlen für Codes und Datums- oder Zeitteile.
Das Auffüllen mit Nullen in f"{4:02d}" zeigt "04" an, sodass eine einstellige Minute ein zweistelliges Feld ausfüllt.
Ausdrucksfeld
Ein Ausdrucksfeld ist ein von geschweiften Klammern umschlossener Teil eines f-Strings, dessen Ausdruck beim Erstellen der Zeichenkette ausgewertet wird.
Das Ausdrucksfeld in f"Total: {3 * 4}" berechnet zwölf, bevor es das Ergebnis nach der Bezeichnung einsetzt.
Ausrichtung
Die Ausrichtung bestimmt die Position eines Werts in einem aufgefüllten Feld: < setzt ihn nach links, > nach rechts und ^ zentriert ihn.
Die Rechtsausrichtung in f"{'hi':>5}" setzt drei Leerzeichen vor das Wort; eine Linksausrichtung setzt sie dahinter.
Ausschnitt
Ein Ausschnitt wählt Zeichen anhand eines Startwerts, einer ausgeschlossenen Endgrenze und einer optionalen Schrittweite aus und gibt den ausgewählten Text als Zeichenkette zurück.
Der Ausschnitt "window"[1:4] gibt "ind" zurück: Er wählt die Positionen eins bis drei aus und schließt Position vier aus.
Ausschnittsgrenze
Eine Ausschnittsgrenze markiert, wo die Auswahl beginnt oder endet. Ein Ausschnitt in Vorwärtsrichtung schließt seine Startposition ein und seine Endposition aus.
In "garden"[:3] ist die Ausschnittsgrenze drei die ausgeschlossene Endgrenze, sodass d ausgelassen wird und das Ergebnis "gar" ist.

B

Bereinigung von Leerraumzeichen
Die Bereinigung von Leerraumzeichen mit " ".join(text.split()) entfernt Leerraumzeichen an den Enden und ersetzt innere Folgen von Leerraumzeichen durch ein einzelnes gewöhnliches Leerzeichen.
Die Bereinigung von Leerraumzeichen mit " ".join(text.split()) macht aus " blue\n sky " den einheitlich mit Leerzeichen versehenen Text "blue sky".
binäre Approximation
Eine binäre Approximation ist ein gespeicherter Gleitkommawert nahe einem Dezimalwert, der die Rundung an einer Anzeigegrenze beeinflussen kann.
Die binäre Approximation der Gleitkommazahl 2.675 liegt geringfügig darunter, sodass die Formatierung auf zwei Nachkommastellen "2.67" ergibt.
break
Die Anweisung break verlässt die aktuelle Schleife sofort. Damit kann eine Zeichensuche nach der Verarbeitung des ersten passenden Zeichens beendet werden.
Eine Suche nach der ersten Ziffer in "Zone 81" kann 8 ausgeben und break ausführen, sodass die spätere 1 unverarbeitet bleibt.

C

Codepunktumwandlung
Die Codepunktumwandlung verwendet ord(), um die Unicode-Zahl eines Zeichens zu erhalten, und chr(), um das Zeichen zu einer solchen Zahl zu erhalten.
Die Codepunktumwandlung mit ord("A") ergibt 65, und die umgekehrte Umwandlung mit chr(65) ergibt "A".

D

Dezimalziffernprüfung
Eine Dezimalziffernprüfung mit isdecimal() akzeptiert nicht leere Zeichenketten aus Dezimalziffern und lehnt Vorzeichen, Dezimalpunkte und Leerzeichen ab.
Nach dem Entfernen äußerer Leerzeichen akzeptiert die Dezimalziffernprüfung "007", das in die ganze Zahl sieben umgewandelt wird.
Dreiteilung
Eine Dreiteilung trennt Text einmal in ein dreiteiliges Tupel aus dem Text vor einem Trennzeichen, dem Trennzeichen und dem Text danach.
Die Dreiteilung von "color=blue" an "=" ist ("color", "=", "blue"); das Trennzeichen bleibt in der Mitte erhalten.
Durchlaufen einer Zeichenkette
Das Durchlaufen einer Zeichenkette besucht Zeichen in einer gewählten Reihenfolge, häufig mit einer direkten for-Schleife oder einer while-Schleife mit Index.
Beim Durchlaufen von "go!" werden zuerst g, dann o und dann ! besucht, sodass für jedes Zeichen eine eigene Entscheidung möglich ist.

E

Elementzuweisung
Eine Elementzuweisung versucht, ein Sequenzelement an einem Index zu ersetzen. Zeichenketten lehnen sie ab, weil ihre Zeichen nicht direkt verändert werden können.
Die Elementzuweisung in word[1] = "x" löst bei einer Zeichenkette einen TypeError aus, selbst wenn Index eins eine gültige Position ist.
Entfernen von Randzeichen
Das Entfernen von Randzeichen beseitigt unerwünschte Zeichen an den Enden einer Zeichenkette. Standardmäßig werden Leerraumzeichen entfernt, alternativ eine angegebene Menge entfernbarer Zeichen.
Das Entfernen von Randzeichen aus "..hello!!" mit der Zeichenmenge ".!" erhält "hello" und lässt den Text im Inneren unverändert.
enumerate()
Die Funktion enumerate() liefert jedes Element einer Sequenz zusammen mit seinem Index. So kann eine Schleife beide ohne gesonderten Zugriff verwenden.
Eine Schleife über enumerate("sun") erhält Index-Zeichen-Paare, beginnend mit 0, "s" und endend mit 2, "n".
erneute Zuweisung
Eine erneute Zuweisung lässt eine Variable auf einen anderen Wert verweisen, ohne den bisherigen Wert oder andere Namen für diesen Wert zu verändern.
Wenn a den Wert "red" enthält, lässt die erneute Zuweisung mit a += "!" die Variable a auf "red!" verweisen, während eine andere Variable weiterhin "red" enthalten kann.
Escape-Sequenz
Eine Escape-Sequenz verwendet in einem Literal einen umgekehrten Schrägstrich und folgende Zeichen, um ein Zeichen wie einen Zeilenumbruch, Tabulator oder ein Anführungszeichen darzustellen.
In "up\ndown" speichert die Escape-Sequenz \n einen Zeilenumbruch, sodass die Ausgabe die Wörter in zwei Zeilen setzt.

F

f-String
Ein f-String ist ein mit f gekennzeichnetes Zeichenkettenliteral, das Ausdrücke in Feldern mit geschweiften Klammern auswertet und ihre Werte in den entstehenden Text einsetzt.
Mit count = 7 erstellt der f-String f"Found {count}" den Wert "Found 7" ohne ausdrückliche Umwandlung der Zahl in Text.
Feldbreite
Eine Feldbreite legt eine Mindestanzahl von Zeichenpositionen für einen formatierten Wert fest. Sie ergänzt Füllzeichen und lässt längere Werte vollständig erhalten.
Eine Feldbreite von fünf ergänzt nach "cat" zwei Leerzeichen, aber die Breite zwei erhält weiterhin das ganze Wort.
Feldumwandlung
Eine Feldumwandlung ändert einen Textteil in den für die weitere Arbeit benötigten Datentyp, etwa indem eine aufgeteilte Mengenangabe vor der Addition mit int() umgewandelt wird.
Die Feldumwandlung macht aus dem aufgeteilten Text "12" eine ganze Zahl, bevor er numerisch zu fünf addiert werden kann.
Festkommaformat
Das Festkommaformat verwendet den Typ f, um eine Zahl mit einer gewählten Anzahl von Nachkommastellen anzuzeigen. Bei Bedarf wird gerundet und es werden abschließende Nullen ergänzt.
Das Festkommaformat .3f zeigt die ganze Zahl fünf als "5.000" mit genau drei Nachkommastellen an.
find()
Die Methode find() gibt den Anfangsindex der ersten passenden Teilzeichenkette oder -1 zurück, wenn der gesuchte Text nicht vorkommt.
Die Suche "lemon".find("mo") gibt zwei zurück, während "lemon".find("xy") bei fehlendem Treffer minus eins zurückgibt.
Formatangabe
Eine Formatangabe ist eine Gruppe von Anzeigeanweisungen nach dem Doppelpunkt in einem Feld. Sie steuert Details wie Genauigkeit, Gruppierung oder Breite.
In f"{8.5:.2f}" wählt die Formatangabe .2f zwei Nachkommastellen und erzeugt "8.50" für die Anzeige.
Füllzeichen
Ein Füllzeichen ersetzt gewöhnliche Leerzeichen beim Auffüllen, wenn es in einer Formatangabe direkt vor einem Ausrichtungssymbol steht.
Ein Sternchen als Füllzeichen in f"{'ok':*^6}" ergibt "**ok**" und füllt ungenutzte Positionen um den Text auf.

G

Groß- und Kleinschreibung für Vergleiche vereinheitlichen
Das Vereinheitlichen der Groß- und Kleinschreibung für Vergleiche beseitigt Unterschiede zwischen Groß- und Kleinschreibung, einschließlich einiger sprachspezifischer Änderungen, die gewöhnliches Kleinschreiben nicht vornimmt.
Das Vereinheitlichen der Groß- und Kleinschreibung macht sowohl aus "Straße" als auch aus "STRASSE" den Wert "strasse", sodass die Schreibweisen als gleich verglichen werden können.

I

Index
Ein Index ist eine ganzzahlige Position, über die ein Zeichen einer Zeichenkette ausgewählt wird. Das erste Zeichen steht an Position null.
Bei label = "desk" wählt Index 2 das Zeichen "s" aus, da die Positionen mit d bei null beginnen.
IndexError
Ein IndexError meldet, dass an einem angeforderten Index einer Sequenz kein Element vorhanden ist, etwa beim Zugriff auf eine Position hinter dem Ende einer Zeichenkette.
Der Ausdruck "cup"[3] löst einen IndexError aus, da seine drei Zeichen die Positionen null bis zwei belegen.

K

Kurzschlussauswertung
Die Kurzschlussauswertung überspringt einen booleschen Operanden, wenn das frühere Ergebnis die Bedingung bereits entscheidet. So kann eine erste Prüfung eine spätere Operation absichern.
Die Kurzschlussauswertung in s.isdecimal() and int(s) > 0 überspringt die Umwandlung, wenn die Zeichenprüfung fehlschlägt.

L

leere Trennzeichenkette
Eine leere Trennzeichenkette ist eine Zeichenkette ohne Zeichen, die mit join() verwendet wird, um Teile ohne zusätzliche Zeichen dazwischen zusammenzusetzen.
Eine leere Trennzeichenkette in "".join(["a", "b", "c"]) ergibt "abc" und erhält dabei die Reihenfolge der Teile.
leeres Feld
Ein leeres Feld ist ein Element ohne Zeichen, das erhalten bleibt, wenn ausdrücklich angegebene Trennzeichen benachbart sind oder am Anfang beziehungsweise Ende einer Zeichenkette stehen.
Das Aufteilen von "a;;c" an ";" erhält ein leeres Feld an der zweiten Position und bewahrt so einen fehlenden Datensatzwert.
Leerraumzeichen
Leerraumzeichen sind Abstandszeichen wie Leerzeichen, Tabulatoren und Zeilenumbrüche, die Textmethoden an den Rändern entfernen oder als Grenzen verwenden können.
Die Zeichenkette " \t" enthält nur Leerraumzeichen. Werden sie entfernt, bleiben keine Zeichen im Text.
lexikografische Reihenfolge
Die lexikografische Reihenfolge vergleicht Sequenzen von links nach rechts anhand des Codepunkts des ersten unterschiedlichen Zeichens oder setzt einen kürzeren Anfangsteil zuerst.
Die lexikografische Reihenfolge setzt "19" vor "3", weil ihre ersten unterschiedlichen Zeichen den Vergleich entscheiden.
Liste
Eine Liste ist eine geordnete Sammlung von Elementen, die in eckigen Klammern geschrieben wird. Das Aufteilen einer Zeichenkette gibt eine Liste zurück, deren Elemente Zeichenketten sind.
Nach dem Aufteilen von "oak,elm" an einem Komma enthält die Liste zwei Elemente, und Index eins wählt die Zeichenkette "elm" aus.

M

maximale Anzahl der Aufteilungen
Das Argument für die maximale Anzahl der Aufteilungen begrenzt, wie viele Trennungen split() oder rsplit() ausführt, und lässt den Rest in einem nicht weiter aufgeteilten Teil zusammen.
Begrenzt du die Anzahl der Aufteilungen auf eins, wird "a=b=c" von links in "a" und "b=c" getrennt; spätere Gleichheitszeichen bleiben erhalten.
Methodenverkettung
Eine Methodenverkettung ruft eine Methode auf dem Ergebnis eines früheren Aufrufs auf, sodass jede Operation den unmittelbar zuvor zurückgegebenen Wert erhält.
Die Methodenverkettung in " OK ".strip().lower() gibt zuerst "OK" zurück und wandelt dieses Ergebnis dann in "ok" um.

N

negativer Index
Ein negativer Index wählt ein Zeichen durch Zählen vom Ende aus. Dabei bezeichnet -1 das letzte und -len(text) das erste Zeichen.
In "cloud" wählt der negative Index -1 das Zeichen "d" aus, während -2 das davorstehende Zeichen "u" auswählt.
nicht überlappende Treffer
Nicht überlappende Treffer sind Vorkommen, die keine Zeichenposition erneut verwenden. Das ist die von count() verwendete Trefferregel.
Die zwei nicht überlappenden Treffer in "aaaa".count("aa") verwenden unterschiedliche Zeichenpositionen, daher ist die Anzahl zwei.
nichtproportionale Schrift
Eine nichtproportionale Schrift gibt jeder Zeichenposition dieselbe sichtbare Breite, sodass wiederholte Felder fester Breite als Textspalten untereinander stehen können.
Eine nichtproportionale Schrift in einem Terminal richtet gleich breite Betragsfelder aus, weil jede Zeichenposition gleich viel Platz einnimmt.

P

Palindrom
Ein Palindrom ist Text, der vorwärts und rückwärts gleich gelesen wird. Diese Eigenschaft lässt sich durch den Vergleich einer Zeichenkette mit ihrer Umkehrung prüfen.
Das Palindrom "radar" besteht word == word[::-1]; bei gemischter Groß- und Kleinschreibung ist eine Bereinigung nötig, wenn dieser Unterschied ignoriert werden soll.
Prozentformat
Das Prozentformat verwendet %, um einen Bruchteil für die Anzeige mit 100 zu multiplizieren und ein Prozentzeichen anzufügen. Die Anzahl der Nachkommastellen kann angegeben werden.
Das Prozentformat .0% zeigt 0.18 als "18%" an; die Übergabe von achtzehn würde den Wert ein zweites Mal skalieren.

R

removeprefix()
Die Methode removeprefix() entfernt einen genau passenden Anfang aus einer Zeichenkette und gibt den ursprünglichen Text zurück, wenn dieser Anfang fehlt.
Der Aufruf "pretest".removeprefix("pre") ergibt "test", während ein fehlender Anfangsteil den Text unverändert lässt.
removesuffix()
Die Methode removesuffix() entfernt ein genau passendes Ende aus einer Zeichenkette und erhält andere Zeichen, die beim Entfernen von Randzeichen möglicherweise entfernt würden.
Der Aufruf "report.txt".removesuffix(".txt") erhält "report" einschließlich des letzten t im Grundnamen.
rfind()
Die Methode rfind() gibt den Anfangsindex der letzten passenden Teilzeichenkette zurück. Obwohl sie von rechts sucht, verwendet sie die Positionen der ganzen Zeichenkette.
Die Suche "a-b-c".rfind("-") gibt drei zurück und findet den letzten Bindestrich mit einer von links gezählten Position.
rohes Zeichenkettenliteral
Ein rohes Zeichenkettenliteral hat das Präfix r, das umgekehrte Schrägstriche als wörtliche Zeichen beibehält, statt gewöhnliche Escape-Sequenzen zu verarbeiten.
Das rohe Zeichenkettenliteral r"C:\new" behält den umgekehrten Schrägstrich vor new bei und verhindert so, dass dieses Paar zu einem Zeilenumbruch wird.
Rückgabewert
Ein Rückgabewert ist das Ergebnis, das eine Funktion oder Methode an den aufrufenden Code zurückgibt. Es kann gespeichert, geprüft oder an eine andere Operation übergeben werden.
Der Rückgabewert von text.upper() ist Text in Großbuchstaben; durch die Zuweisung an text bleibt er für eine spätere Verwendung erhalten.
Rundung zur geraden Ziffer
Die Rundung zur geraden Ziffer wählt die gerade beibehaltene Ziffer, wenn ein gespeicherter Wert genau in der Mitte zwischen zwei möglichen gerundeten Ergebnissen liegt.
Die Rundung zur geraden Ziffer lässt die exakten Mittelfälle 0.125 und 0.375 bei zwei Nachkommastellen als "0.12" und "0.38" erscheinen.

S

Schrittweite eines Ausschnitts
Die Schrittweite eines Ausschnitts ist der ganzzahlige Abstand zwischen ausgewählten Positionen; sie darf nicht null sein. Ein negativer Wert führt bei der Auswahl rückwärts.
Eine Schrittweite von zwei in "abcdef"[::2] wählt die Indizes null, zwei und vier aus und erzeugt "ace".
str.format()
Die Methode str.format() füllt Felder in geschweiften Klammern innerhalb einer Zeichenkette mit ihren Argumenten. Die Felder werden nach Reihenfolge oder einem ausdrücklichen Argumentindex ausgewählt.
Der Aufruf "{1}, {0}".format("Ada", "Lovelace") verwendet str.format(), um das zweite Argument vor das erste zu setzen.
Suchstartposition
Eine Suchstartposition legt die früheste von einer Suche berücksichtigte Position fest, während zurückgegebene Indizes weiterhin relativ zur ganzen Zeichenkette gelten.
Eine Suchstartposition von eins in "cocoa".find("co", 1) überspringt den Treffer bei null und findet den bei zwei.

T

Tausendergruppierung
Die Tausendergruppierung trennt große Zahlen mithilfe eines Kommas oder Unterstrichs in einer Formatangabe in lesbare Gruppen.
Die Tausendergruppierung in f"{7654321:,}" zeigt "7,654,321" an und trennt jede Gruppe von drei Ziffern.
Teilzeichenkette
Eine Teilzeichenkette ist eine zusammenhängende Folge von Zeichen innerhalb einer anderen Zeichenkette. Sie kann durch einen Ausschnitt ausgewählt oder durch eine Suche gefunden werden.
Der Text "light" ist eine Teilzeichenkette von "daylight", "dyl" dagegen nicht, weil diese Buchstaben nicht aufeinanderfolgen.
Trennzeichen
Ein Trennzeichen ist die genaue Zeichenkette, die eine Aufteilungsgrenze markiert oder beim Zusammenfügen zwischen Teile gesetzt wird. Sie kann mehrere Zeichen enthalten.
Das Trennzeichen ", " entspricht einem Komma mit folgendem Leerzeichen und teilt daher die Zeichenkette "oak,elm" nicht auf.

U

Um-eins-Fehler
Ein Um-eins-Fehler verwendet eine Grenze eine Position zu früh oder zu spät, häufig weil die Länge einer Sequenz mit ihrem letzten Index verwechselt wird.
Ein Um-eins-Fehler in text[len(text)] führt zu einem Zugriff hinter dem Ende; durch Subtraktion von eins erhältst du den Index des letzten Zeichens.
Umwandlung mit map()
Eine Umwandlung mit map() wendet eine Funktion auf jedes Eingabeelement an, sodass str die von join() benötigten Zeichenkettenteile liefern kann.
Eine Umwandlung mit map() in ", ".join(map(str, [3, 8])) liefert Zeichenketten, bevor sie zu "3, 8" zusammengefügt werden.
Unicode-Codepunkt
Ein Unicode-Codepunkt ist eine einem Zeichen zugewiesene Zahl. Python-Zeichenketten speichern Codepunkte und len() zählt sie.
Das Emoji "👍🏽" enthält zwei Unicode-Codepunkte, daher beträgt seine Länge als Python-Zeichenkette trotz seines Aussehens zwei.
Unveränderlichkeit
Unveränderlichkeit bedeutet, dass ein Wert nicht direkt verändert werden kann. Eine Zeichenkettenoperation muss einen anderen Wert erzeugen, damit eine Variable anderen Text erhält.
Die Unveränderlichkeit von Zeichenketten lässt name[0] = "B" fehlschlagen, während name = "B" + name[1:] erfolgreich neuen Text erstellt.

V

Vergleich mit Beachtung der Groß- und Kleinschreibung
Ein Vergleich mit Beachtung der Groß- und Kleinschreibung behandelt große und kleine Zeichen als unterschiedlich, sodass ansonsten übereinstimmende Wörter beim Gleichheitsvergleich durchfallen können.
Ein Vergleich mit Beachtung der Groß- und Kleinschreibung macht "Ready" == "ready" falsch, solange die Groß- und Kleinschreibung beider Werte nicht vereinheitlicht wurde.
Verkettung
Die Verkettung fügt Zeichenketten hintereinander zu einer Zeichenkette zusammen. Dabei bleiben alle Zeichen erhalten, ohne dass automatisch ein Trennzeichen eingefügt wird.
Die Verkettung mit "rain" + "coat" ergibt "raincoat"; für ein zusätzliches Leerzeichen ist ein Teil erforderlich, der eines enthält.

W

wörtliche geschweifte Klammer
Eine wörtliche geschweifte Klammer ist ein Klammerzeichen, das in einem f-String durch Verdopplung als Text angezeigt und so von der Syntax eines Ausdrucksfelds getrennt wird.
In f"{{open}}" wird { vor open angezeigt und eine schließende geschweifte Klammer danach, ohne Python aufzufordern, diesen Namen auszuwerten.

Z

Zähler
Ein Zähler ist eine Variable, die erfasst, wie oft eine Bedingung erfüllt wird. Sie beginnt gewöhnlich bei null und wird pro Treffer um eins erhöht.
Ein Zähler für Ziffern in "Bay 27" wird bei 2 und 7 erhöht und endet nach der Schleife mit zwei Treffern.
Zeichenkette
Eine Zeichenkette ist eine geordnete Folge von Unicode-Zeichen mit dem Datentyp str. Sie dient dazu, Text wie Namen, Nachrichten und Codes zu speichern.
Die Zeichenkette "Hello, Nora" speichert die Begrüßung, ihr Komma und ihr Leerzeichen als Teile eines geordneten Textwerts.
Zeichenkettengenauigkeit
Die Zeichenkettengenauigkeit begrenzt, wie viele Textzeichen ein Feld anzeigt. So lässt sich eine maximale Textlänge mit einer Mindestbreite kombinieren.
Die Zeichenkettengenauigkeit in f"{'sunshine':6.3}" zeigt "sun" und drei Leerzeichen an, ohne das ursprüngliche Wort zu ändern.
Zeichenkettenliteral
Ein Zeichenkettenliteral ist Text, der direkt im Python-Code zwischen passenden Anführungszeichen steht. Diese markieren seine Grenzen, ohne in den Wert einzugehen.
Die Zeichenkettenliterale "open" und 'open' verwenden unterschiedliche äußere Anführungszeichen, speichern aber dieselben vier Zeichen.
Zeichenkettenmethode
Eine Zeichenkettenmethode ist eine zu Zeichenkettenwerten gehörende Funktion. Sie wird mit Punkt und Klammern aufgerufen, um eine Textoperation auszuführen und deren Ergebnis zurückzugeben.
Der Aufruf der Zeichenkettenmethode "hello".upper() gibt "HELLO" zurück; ohne die Klammern wird sie nicht aufgerufen.
Zeichenprüfung
Eine Zeichenprüfung prüft, ob die Zeichen einer Zeichenkette eine Regel erfüllen, und gibt einen booleschen Wert zurück. Prüfungen wie isalpha() lehnen auch leere Zeichenketten ab.
Die Zeichenprüfung "lake9".isalnum() ist wahr, während das Leerzeichen in "lake 9" diese Version durchfallen lässt.
Zugehörigkeitsprüfung
Eine Zugehörigkeitsprüfung prüft mit in oder not in, ob eine Teilzeichenkette vorkommt, und gibt einen booleschen Wert zurück, ohne ihre Position anzugeben.
Die Zugehörigkeitsprüfung "ice" in "spice" ist wahr, während das großgeschriebene "Ice" nicht zu demselben Text passt.
Zusammenfügen
Das Zusammenfügen erstellt aus Zeichenkettenteilen eine Zeichenkette und setzt ein gewähltes Trennzeichen zwischen aufeinanderfolgende Teile, ohne es an einem der beiden äußeren Enden hinzuzufügen.
Das Zusammenfügen von ["home", "nora"] mit dem Trennzeichen "/" erzeugt "home/nora", mit einem Schrägstrich zwischen den Teilen.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten