edubun
Deutsch

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)
Ausgabe
15

Lies 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 Variable funktioniert wie ein Namensschild. Nach score = score + 5 wandert das Schild zum neuen Wert 15; der alte Wert 10 bleibt zurück.

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)
Ausgabe
0 20
Zeilescorebonus
score = 1010(noch keiner)
bonus = score * 21020
score = 0020
print(score, bonus)020

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")
Ausgabe
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
5 23

Regeln 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)
Ausgabe
right left

Das 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.

VariableEin Name, der sich auf einen Wert bezieht
Zuweisungname = value: die rechte Seite berechnen, dann den Namen anheften
intGanze Zahlen: 7, -3, 2026
floatZahlen mit Dezimalpunkt: 3.5, 0.1
strText in Anführungszeichen
boolTrue oder False
AblauftabelleEine Tabelle mit dem Wert jeder Variablen nach jeder Zeile
  1. Was gibt das aus?
    x = 4
    x = x + 3
    print(x)
  2. Was gibt das aus?
    a = 3
    b = a
    a = 7
    print(b)
  3. Was gibt das aus?
    price = 1500
    count = 3
    total = price * count
    print(total)
  4. Was gibt das aus?
    n = 2
    n = n * n
    n = n * n
    print(n)
    • 4
    • 8
    • 16
    • 2
  5. Was gibt das aus?
    print(type(7.0))
  6. Was gibt das aus?
    print("7" + "7")
  7. Welcher dieser Namen ist ein gültiger Variablenname?
    • 2nd_place
    • seats left
    • seats_left
    • for
  8. Was gibt das aus?
    a = "left"
    b = "right"
    a, b = b, a
    print(b)
  9. Was gibt das aus?
    Score = 5
    score = 9
    print(Score)
    • 5
    • 9
    • 14
    • Ein Fehler
  10. Was ist x, nachdem x = 10 gesetzt wurde und dann x + 1 allein in einer Zeile steht?
    • 10
    • 11
    • x + 1
    • Ein Fehler
Häufige 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.
Hinweis für LehrkräfteDas Zeichen = ist der größte Überrest aus der Mathematik. Eine Gewohnheit, die hilft, ist, = laut als „bekommt“ oder „wird“ zu lesen („score bekommt score plus fünf“) und nie als „gleich“. Ablauftabellen verdienen echte Unterrichtszeit: Gib ein Programm mit fünf Zeilen, bitte um die Tabelle, bevor jemand es ausführt, führe es dann aus und vergleiche. Das Vertauschen a, b = b, a ist ein guter Test, ob Lernende verstehen, dass die ganze rechte Seite zuerst berechnet wird. Behalte type() von Anfang an im Blick, denn die Überraschung mit "7" + "7" kommt in der Einheit zur Eingabe wieder.
Das Wichtigste
  • = 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