|
| 1 | +# String-Operationen in Python 🧵 |
| 2 | + |
| 3 | +## Inhaltsverzeichnis |
| 4 | +- [Grundlagen von Strings](#grundlagen-von-strings) |
| 5 | +- [String-Methoden](#string-methoden) |
| 6 | +- [String-Formatierung](#string-formatierung) |
| 7 | +- [String-Slicing und Indexierung](#string-slicing-und-indexierung) |
| 8 | +- [Praktische Anwendungen](#praktische-anwendungen) |
| 9 | +- [Übungsaufgaben](#übungsaufgaben) |
| 10 | +- [Zusammenfassung](#zusammenfassung) |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +Vorheriges Thema: [Variablen und Datentypen](/Anleitungen/04_variablen_und_Datentypen.md) | Nächstes Thema: [Nächstes Thema](/Anleitungen/XX_nächstes_thema.md) |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +Stell dir vor, du möchtest mit Text arbeiten - Namen speichern, Nachrichten anzeigen oder Benutzereingaben verarbeiten. Dafür brauchst du Strings! Strings sind in Python die Datentypen für Text und gehören zu den wichtigsten Werkzeugen beim Programmieren. In dieser Anleitung lernst du, wie du mit Strings arbeiten, sie verändern und formatieren kannst. |
| 19 | + |
| 20 | +## Grundlagen von Strings |
| 21 | + |
| 22 | +Stell dir einen String wie eine Perlenkette vor, bei der jede Perle ein Buchstabe oder Zeichen ist. In Python schreibst du Strings in einfachen (`'`) oder doppelten (`"`) Anführungszeichen. Beide Varianten funktionieren gleich. 📌 |
| 23 | + |
| 24 | +- Ein String kann alles enthalten: Buchstaben, Zahlen, Sonderzeichen, Leerzeichen |
| 25 | +- Strings sind unveränderlich (immutable) - wie eine versiegelte Nachricht |
| 26 | +- Mit dem `+` Operator kannst du Strings verbinden (wie zwei Perlenketten zusammenfügen) |
| 27 | + |
| 28 | +```python |
| 29 | +# Strings erstellen |
| 30 | +name = "Python" |
| 31 | +beschreibung = 'ist eine Programmiersprache' |
| 32 | + |
| 33 | +# Strings verbinden (Konkatenation) |
| 34 | +satz = name + " " + beschreibung |
| 35 | +print(satz) # Ausgabe: Python ist eine Programmiersprache |
| 36 | + |
| 37 | +# Länge eines Strings ermitteln (Anzahl der Zeichen) |
| 38 | +länge = len(name) |
| 39 | +print(länge) # Ausgabe: 6 |
| 40 | + |
| 41 | +# Strings wiederholen |
| 42 | +wiederholung = "Hip " * 3 |
| 43 | +print(wiederholung) # Ausgabe: Hip Hip Hip |
| 44 | +``` |
| 45 | + |
| 46 | +## String-Methoden |
| 47 | + |
| 48 | +Strings in Python haben viele eingebaute "Superkräfte" (Methoden), mit denen du sie bearbeiten kannst. Diese Methoden erstellen immer einen neuen String, da Strings unveränderlich sind. 🔎 |
| 49 | + |
| 50 | +1. Groß- und Kleinschreibung ändern - wie ein Textformatierungswerkzeug |
| 51 | +2. Leerzeichen entfernen - wie ein digitaler Radiergummi |
| 52 | +3. Suchen und Ersetzen - wie die Suchen-Funktion in einem Texteditor |
| 53 | +4. Überprüfen von Eigenschaften - wie ein Textdetektiv |
| 54 | + |
| 55 | +Hier sind einige wichtige String-Methoden: |
| 56 | + |
| 57 | +```python |
| 58 | +text = " Hallo Welt " |
| 59 | + |
| 60 | +# Groß- und Kleinschreibung |
| 61 | +print(text.upper()) # Ausgabe: " HALLO WELT " |
| 62 | +print(text.lower()) # Ausgabe: " hallo welt " |
| 63 | +print(text.capitalize()) # Ausgabe: " hallo welt " |
| 64 | +print(text.title()) # Ausgabe: " Hallo Welt " (Jedes Wort groß) |
| 65 | + |
| 66 | +# Leerzeichen entfernen |
| 67 | +print(text.strip()) # Ausgabe: "Hallo Welt" |
| 68 | +print(text.lstrip()) # Ausgabe: "Hallo Welt " |
| 69 | +print(text.rstrip()) # Ausgabe: " Hallo Welt" |
| 70 | + |
| 71 | +# Suchen und Ersetzen |
| 72 | +print(text.replace("Welt", "Python")) # Ausgabe: " Hallo Python " |
| 73 | +print(text.find("Welt")) # Ausgabe: 8 (Position) |
| 74 | +print(text.count("l")) # Ausgabe: 3 (Anzahl der "l") |
| 75 | +print("Welt" in text) # Ausgabe: True |
| 76 | + |
| 77 | +# Eigenschaften überprüfen |
| 78 | +print("123".isdigit()) # Ausgabe: True (nur Ziffern?) |
| 79 | +print("abc".isalpha()) # Ausgabe: True (nur Buchstaben?) |
| 80 | +print("Hallo123".isalnum()) # Ausgabe: True (Buchstaben oder Ziffern?) |
| 81 | +print("Hallo".startswith("Ha")) # Ausgabe: True |
| 82 | +print("Welt".endswith("lt")) # Ausgabe: True |
| 83 | +``` |
| 84 | + |
| 85 | +## String-Formatierung |
| 86 | + |
| 87 | +Stell dir vor, du hast eine Vorlage für eine Nachricht und willst persönliche Daten einfügen. Dafür gibt es in Python verschiedene Möglichkeiten. Die modernste und coolste Methode sind f-Strings (ab Python 3.6). 💡 |
| 88 | + |
| 89 | +```python |
| 90 | +# Alte Methode mit % |
| 91 | +name = "Max" |
| 92 | +alter = 15 |
| 93 | +print("Hallo, ich bin %s und %d Jahre alt." % (name, alter)) |
| 94 | + |
| 95 | +# Methode mit .format() |
| 96 | +print("Hallo, ich bin {} und {} Jahre alt.".format(name, alter)) |
| 97 | + |
| 98 | +# f-Strings (empfohlen, ab Python 3.6) - am einfachsten zu lesen! |
| 99 | +print(f"Hallo, ich bin {name} und {alter} Jahre alt.") |
| 100 | + |
| 101 | +# Mit f-Strings kannst du auch direkt rechnen |
| 102 | +print(f"In 5 Jahren werde ich {alter + 5} Jahre alt sein.") |
| 103 | + |
| 104 | +# Zahlenformatierung für schöne Ausgaben |
| 105 | +pi = 3.14159 |
| 106 | +print(f"Pi gerundet: {pi:.2f}") # Ausgabe: Pi gerundet: 3.14 |
| 107 | + |
| 108 | +# Ausrichtung von Text |
| 109 | +print(f"{'Links':<10}|{'Mitte':^10}|{'Rechts':>10}") |
| 110 | +# Ausgabe: Links | Mitte | Rechts |
| 111 | +``` |
| 112 | + |
| 113 | +## String-Slicing und Indexierung |
| 114 | + |
| 115 | +Stell dir einen String wie ein Wort aus Scrabble-Steinen vor. Du kannst einzelne Steine (Zeichen) nehmen oder mehrere auf einmal (Teilstrings). Python-Indizes beginnen bei 0 für das erste Zeichen - das ist wichtig zu merken! ⚠️ |
| 116 | + |
| 117 | +```python |
| 118 | +text = "Python ist cool" |
| 119 | + |
| 120 | +# Einzelne Zeichen über Index zugreifen (wie auf einen bestimmten Scrabble-Stein) |
| 121 | +print(text[0]) # Ausgabe: P (erstes Zeichen) |
| 122 | +print(text[7]) # Ausgabe: i |
| 123 | +print(text[-1]) # Ausgabe: l (letztes Zeichen) |
| 124 | + |
| 125 | +# Slicing: text[start:ende:schritt] (wie mehrere Scrabble-Steine auf einmal nehmen) |
| 126 | +print(text[0:6]) # Ausgabe: Python (Zeichen 0 bis 5) |
| 127 | +print(text[7:10]) # Ausgabe: ist |
| 128 | +print(text[11:]) # Ausgabe: cool (von 11 bis Ende) |
| 129 | +print(text[:6]) # Ausgabe: Python (vom Anfang bis 5) |
| 130 | +print(text[::2]) # Ausgabe: Pto s ol (jedes zweite Zeichen) |
| 131 | +print(text[::-1]) # Ausgabe: looc tsi nohtyP (rückwärts) |
| 132 | +``` |
| 133 | + |
| 134 | +Tipps: |
| 135 | +- Der Startindex ist inklusive (wird mitgenommen), der Endindex exklusive (wird nicht mitgenommen) |
| 136 | +- Negative Indizes zählen vom Ende des Strings (-1 ist das letzte Zeichen) |
| 137 | +- Wenn du einen Index außerhalb des gültigen Bereichs verwendest, erhältst du einen Fehler |
| 138 | +- Slicing ist sehr mächtig und wird oft in Python-Programmen verwendet |
| 139 | + |
| 140 | +## Praktische Anwendungen |
| 141 | + |
| 142 | +Hier sind einige Beispiele, wie du String-Operationen im Alltag nutzen kannst: 🚀 |
| 143 | + |
| 144 | +### Beispiel 1: Benutzernamen formatieren |
| 145 | +```python |
| 146 | +# Benutzernamen standardisieren |
| 147 | +eingabe = " Max Mustermann " |
| 148 | +username = eingabe.strip().lower().replace(" ", "_") |
| 149 | +print(username) # Ausgabe: max_mustermann |
| 150 | +``` |
| 151 | + |
| 152 | +### Beispiel 2: E-Mail-Adresse prüfen |
| 153 | +```python |
| 154 | +email = "benutzer@example.com" |
| 155 | +if "@" in email and "." in email and email.count("@") == 1: |
| 156 | + print("Gültige E-Mail-Form") |
| 157 | +else: |
| 158 | + print("Ungültige E-Mail-Form") |
| 159 | +``` |
| 160 | + |
| 161 | +### Beispiel 3: Passwort-Stärke prüfen |
| 162 | +```python |
| 163 | +passwort = "Sicher123!" |
| 164 | +if len(passwort) >= 8 and any(c.isupper() for c in passwort) and any(c.isdigit() for c in passwort): |
| 165 | + print("Starkes Passwort") |
| 166 | +else: |
| 167 | + print("Schwaches Passwort") |
| 168 | +``` |
| 169 | + |
| 170 | +## Übungsaufgaben |
| 171 | + |
| 172 | +Hier sind einige Aufgaben, mit denen du das Gelernte üben kannst: 🏋️♂️ |
| 173 | + |
| 174 | +1. **Einfache Übung: Namenformatierer** |
| 175 | + Schreibe ein Programm, das einen Vor- und Nachnamen einliest und dann in verschiedenen Formaten ausgibt. |
| 176 | + ```python |
| 177 | + # Beispielcode für die Aufgabe |
| 178 | + vorname = input("Gib deinen Vornamen ein: ") |
| 179 | + nachname = input("Gib deinen Nachnamen ein: ") |
| 180 | + # Hier deine Lösung einfügen |
| 181 | + # Ausgabe 1: "NACHNAME, Vorname" (Nachname in Großbuchstaben) |
| 182 | + # Ausgabe 2: "V. Nachname" (Vorname als Initial) |
| 183 | + # Ausgabe 3: "vorname.nachname" (alles kleingeschrieben) |
| 184 | + ``` |
| 185 | + |
| 186 | +2. **Mittelschwere Übung: Buchstabenzähler** |
| 187 | + Schreibe ein Programm, das einen Satz einliest und für jeden Buchstaben zählt, wie oft er vorkommt. |
| 188 | + ```python |
| 189 | + satz = input("Gib einen Satz ein: ") |
| 190 | + # Hier deine Lösung einfügen |
| 191 | + # Beispielausgabe für "Hallo Welt": |
| 192 | + # H: 1 |
| 193 | + # a: 1 |
| 194 | + # l: 3 |
| 195 | + # o: 1 |
| 196 | + # W: 1 |
| 197 | + # e: 1 |
| 198 | + # t: 1 |
| 199 | + ``` |
| 200 | + |
| 201 | +3. **Herausforderung: Palindrom-Checker** |
| 202 | + Schreibe ein Programm, das prüft, ob ein eingegebener Text ein Palindrom ist (vorwärts und rückwärts gelesen gleich). Beachte: Ignoriere Leerzeichen und Groß-/Kleinschreibung. |
| 203 | + ```python |
| 204 | + text = input("Gib einen Text ein: ") |
| 205 | + # Hier deine Lösung einfügen |
| 206 | + # Beispiele für Palindrome: |
| 207 | + # "Anna" |
| 208 | + # "Otto" |
| 209 | + # "Reliefpfeiler" |
| 210 | + # "Ein Neger mit Gazelle zagt im Regen nie" |
| 211 | + ``` |
| 212 | + |
| 213 | +**Tipp**: Versuche die Aufgaben selbständig zu lösen. Falls du nicht weiterkommst, experimentiere mit den String-Methoden und Slicing-Techniken, die du in dieser Anleitung gelernt hast. Denk daran, dass du Strings mit Methoden wie `.lower()` und `.replace()` bearbeiten kannst, bevor du weitere Operationen durchführst. |
| 214 | + |
| 215 | +## Zusammenfassung |
| 216 | + |
| 217 | +In dieser Anleitung haben wir die Welt der String-Operationen in Python erkundet: |
| 218 | + |
| 219 | +- Wir haben gelernt, was Strings sind und wie man sie erstellt 📝 |
| 220 | +- Wir haben die mächtigen String-Methoden kennengelernt, um Texte zu bearbeiten ✂️ |
| 221 | +- Wir haben verschiedene Möglichkeiten der String-Formatierung entdeckt, besonders f-Strings 🎨 |
| 222 | +- Wir haben gesehen, wie String-Slicing und Indexierung funktionieren 🔍 |
| 223 | +- Wir haben praktische Anwendungen für String-Operationen im Alltag kennengelernt 🛠️ |
| 224 | + |
| 225 | +Strings sind überall in der Programmierung - von Benutzereingaben über Dateiverarbeitung bis hin zu Webentwicklung. Mit den Techniken aus dieser Anleitung kannst du jetzt Text in deinen Python-Programmen effektiv verarbeiten! |
| 226 | + |
| 227 | +--- |
| 228 | + |
| 229 | +Probiere das Gelernte aus und experimentiere mit Strings in deinen eigenen Programmen! 🚀 |
| 230 | + |
| 231 | +--- |
0 commit comments