Werte und Variablen
In der Algebra hat score = score + 5 keine Lösung. In Python ist es eine alltägliche Zeile: War score 10, wird es 15.
Das Zeichen = bedeutet nicht „ist gleich“
Zeige einer Mathematikstudentin die Zeile score = score + 5, und sie sagt dir, sie sei falsch: Keine Zahl ist gleich sich selbst plus fünf. Sie hat in Bezug auf die Algebra recht, und genau darum verwirrt die Zeile, wenn man sie zum ersten Mal in einem Programm sieht. In Python ist = keine Aussage, dass zwei Dinge gleich sind. Es ist eine Anweisung mit einer Richtung. Berechne zuerst die rechte Seite, dann hefte den Namen links an das Ergebnis.
score = 10
score = score + 5
print(score)15Lies es so, wie Python es liest. Zeile 1: Die rechte Seite ist 10, also bezieht sich der Name score jetzt auf 10. Zeile 2: Die rechte Seite ist score + 5, das ist 10 + 5, also 15, und score bezieht sich nun auf 15. Die alte 10 ist weg. Zeile 3 gibt aus, worauf sich score in diesem Moment bezieht. Ein Name, der sich so auf einen Wert bezieht, heißt Variable, und die Zeile, die ihm einen Wert gibt, ist eine Zuweisung.
Eine Ablauftabelle verfolgt jede Variable Zeile für Zeile
Ändern sich mehrere Variablen, führe eine Ablauftabelle: eine Zeile pro Codezeile, eine Spalte pro Variable, und schreibe den Wert auf, den jede Variable nach dem Ausführen dieser Zeile hat. Das ist langsam, und es funktioniert. Die meisten „Warum gibt es das aus?“-Fragen klärt eine Ablauftabelle in unter einer Minute.
score = 10
bonus = score * 2
score = 0
print(score, bonus)0 20| Zeile | score | bonus |
|---|---|---|
| score = 10 | 10 | (noch keiner) |
| bonus = score * 2 | 10 | 20 |
| score = 0 | 0 | 20 |
| print(score, bonus) | 0 | 20 |
Sieh dir die letzten beiden Zeilen an. Dass score auf 0 gesetzt wurde, hat bonus nicht verändert. Als Zeile 2 lief, berechnete Python 10 * 2 = 20 und gab bonus diese Zahl. bonus hält das Ergebnis, nicht das Rezept, und hat daher keine Erinnerung, woher die 20 kam.
Jeder Wert hat einen Typ
Werte gibt es in Arten, genannt Typen. Ganze Zahlen wie 42 sind int. Zahlen mit Dezimalpunkt, etwa 3.5, sind float. Text in Anführungszeichen ist str. True und False sind bool. Die eingebaute Funktion type sagt dir, welchen du hast. Der Typ ist wichtig, weil er entscheidet, was eine Operation tut: 2 + 3 addiert, während "2" + "3" zwei Strings zu "23" verbindet.
print(type(42))
print(type(3.5))
print(type("42"))
print(type(True))
print(2 + 3, "2" + "3")<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
5 23Regeln für Namen
Ein Variablenname kann Buchstaben, Ziffern und den Unterstrich _ enthalten, darf aber nicht mit einer Ziffer beginnen und keine Leerzeichen enthalten. Großbuchstaben zählen als andere Buchstaben, Score und score sind also zwei getrennte Variablen. Manche Wörter, etwa if, for und True, gehören zur Sprache und dürfen nicht als Namen genutzt werden. Python-Programmierende schreiben Namen meist klein mit Unterstrichen zwischen den Wörtern, etwa lunch_price, und wählen Namen, die sagen, was der Wert bedeutet. x ist für einen schnellen Test in Ordnung, und seats_left ist besser in einem Programm, das jemand anderes liest.
a = "left"
b = "right"
a, b = b, a
print(a, b)right leftDas letzte Beispiel tauscht zwei Werte in einer Zeile. Python berechnet zuerst die ganze rechte Seite, b, a, und gibt die beiden Ergebnisse erst dann a und b. Viele andere Sprachen brauchen dafür eine dritte Variable.
| Variable | Ein Name, der sich auf einen Wert bezieht |
| Zuweisung | name = value: die rechte Seite berechnen, dann den Namen anheften |
| int | Ganze Zahlen: 7, -3, 2026 |
| float | Zahlen mit Dezimalpunkt: 3.5, 0.1 |
| str | Text in Anführungszeichen |
| bool | True oder False |
| Ablauftabelle | Eine Tabelle mit dem Wert jeder Variablen nach jeder Zeile |
- Was gibt das aus?
x = 4 x = x + 3 print(x) - Was gibt das aus?
a = 3 b = a a = 7 print(b) - Was gibt das aus?
price = 1500 count = 3 total = price * count print(total) - Was gibt das aus?
n = 2 n = n * n n = n * n print(n)48162
- Was gibt das aus?
print(type(7.0)) - Was gibt das aus?
print("7" + "7") - Welcher dieser Namen ist ein gültiger Variablenname?
- 2nd_place
- seats left
- seats_left
- for
- Was gibt das aus?
a = "left" b = "right" a, b = b, a print(b) - Was gibt das aus?
Score = 5 score = 9 print(Score)5914Ein Fehler
- Was ist x, nachdem x = 10 gesetzt wurde und dann x + 1 allein in einer Zeile steht?
- 10
- 11
- x + 1
- Ein Fehler
- „5 = x und x = 5 bedeuten dasselbe.“ Der Name muss links stehen. 5 = x bricht mit SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='? ab.
- „bonus = score * 2 verbindet bonus für immer mit score.“ bonus bekommt die Zahl, die die Rechnung in diesem Moment ergeben hat. Spätere Änderungen an score berühren sie nicht, wie die Ablauftabelle zeigt.
- „x + 1 zu schreiben addiert eins zu x.“ Ein Ausdruck allein ändert nichts. Du brauchst x = x + 1 oder die Kurzform x += 1.
- = bedeutet: „die rechte Seite berechnen, dann diesen Namen geben“.
- Eine Ablauftabelle hält jede Variable nach jeder Zeile fest.
- Typen: int, float, str, bool. type() sagt dir, welcher es ist.
- Namen: Buchstaben, Ziffern, _; keine Ziffer am Anfang; Groß- und Kleinschreibung zählt.
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