Strings: mit Text arbeiten
Python zählt die Buchstaben von "Python" ab 0, also ist "Python"[5] der letzte Buchstabe, n, und "Python"[6] ist ein Fehler.
Ein Namensschild braucht aus Teilen gebauten Text
Denke an die Namensschilder bei einer Schulveranstaltung oder einem Vereinstreffen. Jedes Schild hat dasselbe Layout und einen anderen Namen, sodass ein Programm sie alle nach einem Muster ausgeben kann. Text in Python ist ein String, und der schnellste Weg, einen aus Teilen zu bauen, ist ein f-String: Setze den Buchstaben f vor das öffnende Anführungszeichen und schreibe Variablennamen in geschweifte Klammern. Python ersetzt jedes {name} durch den Wert dieser Variablen.
name = "Mina"
club = "Robotics"
print(f"Hello, {name}!")
print(f"{name} joined {club}.")Hello, Mina!
Mina joined Robotics.Es gibt zwei ältere Wege, Text zu verbinden. Der Operator + klebt Strings aneinander, und * wiederholt einen String. Beide Seiten von + müssen Strings sein, eine Zahl muss also zuerst mit str() in Text umgewandelt werden. f-Strings nehmen dir diese Umwandlung ab, ein Grund, warum sie die übliche Wahl sind.
item = "gimbap"
count = 2
print(item + " x " + str(count))
print("-" * 12)
print(f"{item} x {count}")gimbap x 2
------------
gimbap x 2Jedes Zeichen hat eine Positionsnummer, beginnend bei 0
Ein String ist eine Reihe von Zeichen, und jedes hat einen Index. Das erste Zeichen steht bei Index 0, nicht 1. Eckige Klammern wählen ein Zeichen aus: word[0] ist das erste. Negative Indizes zählen vom Ende, word[-1] ist also immer das letzte Zeichen, egal wie lang. len() gibt die Zahl der Zeichen an, Leerzeichen und Satzzeichen eingeschlossen.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])P n n
6
Py thonword[0:2] ist ein Slice: Er beginnt bei Index 0 und hört kurz vor Index 2 auf und ergibt "Py". Lässt du das Ende weg, wie in word[2:], läuft der Slice bis zum Ende des Strings. Die Regel „vor dem Ende aufhören“ wirkt zuerst seltsam, bedeutet aber, dass word[0:2] + word[2:] immer das ganze Wort zurückgibt.
String-Methoden geben einen neuen String zurück
Strings haben eingebaute Werkzeuge namens Methoden, die nach einem Punkt geschrieben werden. upper() und lower() ändern die Groß- und Kleinschreibung, replace(old, new) tauscht jede Kopie eines Textstücks gegen ein anderes, und strip() entfernt Leerzeichen an beiden Enden, was hilft, wenn jemand ein Leerzeichen zu viel in ein Formular tippt. Das Schlüsselwort in prüft, ob ein String in einem anderen vorkommt, und gibt True oder False zurück. Keine davon verändert den ursprünglichen String. Ein String lässt sich nach seiner Erzeugung nicht ändern; jede Methode gibt einen neuen zurück, und du behältst ihn, indem du ihn einem Namen zuweist.
menu = " tteokbokki "
clean = menu.strip()
print(clean.upper())
print(clean.replace("k", "K"))
print("bok" in clean, len(menu), len(clean))TTEOKBOKKI
tteoKboKKi
True 14 10Um ein Anführungszeichen in einen String zu setzen, nutze die andere Art von Anführungszeichen darum: "It's fine". Ein Backslash beginnt eine Escape-Sequenz: \n in einem String bedeutet „hier eine neue Zeile beginnen“, sodass ein print zwei Zeilen zeigen kann.
print("It's lunch time.")
print("Line one\nLine two")It's lunch time.
Line one
Line two| f-String | f"...{name}..." setzt Werte in Text |
| Index | Positionsnummer eines Zeichens, beginnend bei 0 |
| Slice | s[a:b]: von Index a bis ausschließlich b |
| len() | Anzahl der Zeichen in einem String |
| Methode | Ein nach einem Punkt geschriebenes Werkzeug, etwa s.upper() |
| \n | Escape-Sequenz für eine neue Zeile |
| in | "a" in "cat" ergibt True |
- Was gibt das aus?
word = "banana" print(word[1]) - Was gibt das aus?
word = "banana" print(word[-2]) - Was gibt das aus?
print(len("Hi there!")) - Was gibt das aus?
word = "school" print(word[1:4]) - Was gibt das aus?
name = "Jun" print(f"Hi {name}, you are {13 + 1}.") - Was gibt das aus?
print("ab" * 3) - Was gibt das aus?
s = "hello" s.upper() print(s)HELLOhelloHelloEin Fehler
- Was gibt das aus?
print("rice" in "fried rice") - Was gibt das aus?
name = "Mina" print(f"{name}") print("{name}")Mina
MinaMina
{name}{name}
Mina{name}
{name}
- Was gibt das aus?
print("Total: " + str(3 * 1000))Total: 3000Total: 3 * 1000Total: 31000Ein Fehler
- „Der erste Buchstabe ist word[1].“ Indizes beginnen bei 0, word[1] ist also der zweite Buchstabe. Der letzte gültige Index ist len(word) - 1; "Python"[6] bricht mit IndexError: string index out of range ab.
- „"Age: " + 15 gibt Age: 15 aus“ Ein String und ein int lassen sich nicht mit + verbinden. Python bricht mit TypeError: can only concatenate str (not "int") to str ab. Nutze str(15) oder einen f-String.
- „Mit word[0] = "J" kann ich einen Buchstaben ändern.“ Strings lassen sich nicht an Ort und Stelle ändern: TypeError: 'str' object does not support item assignment. Baue stattdessen einen neuen String, zum Beispiel "J" + word[1:].
- f"...{x}..." setzt Werte in Text.
- Indizes beginnen bei 0; -1 ist das letzte Zeichen.
- s[a:b] läuft von a bis ausschließlich b.
- Methoden wie upper() geben einen neuen String zurück; das Original bleibt unverändert.
- "\n" ist ein Zeilenumbruch in einem String.
Quellen zu diesem Kurs (6)
- Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
- Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
- Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
- General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
- Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
- Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)
Abgerufen: 2026-10-19