Teil 2: Variablen

Lernziele
  • Erklären, was eine Variable ist, und den Unterschied zur Variable in der Mathematik benennen
  • Werte mit = zuweisen und Variablen überschreiben
  • Gültige und aussagekräftige Variablennamen wählen
  • Ein Programm Zeile für Zeile von Hand nachvollziehen und die Werte notieren
  • Werte vom Benutzer mit input einlesen

Neue Befehle und Zeichen:

  • = weist einer Variable einen Wert zu
  • input() liest einen Wert vom Benutzer ein
  • - subtrahiert und bildet die Gegenzahl
  • * multipliziert
  • / dividiert

Variablen

Variablen sind Speicherplätze für Daten in einem Programm. Sie geben Informationen einen Namen, damit wir sie später wieder erreichen. Jede Variable hat einen Namen und einen Wert.

Nicht dasselbe wie in der Mathematik

In der Mathematik beschreibt x=3x = 3 eine Aussage über eine unbekannte Grösse. In der Programmierung ist x = 3 eine Anweisung: „Lege den Wert 3 in den Speicherplatz x.“ Deshalb ergibt x = x + 1 in Python Sinn, in der Mathematik wäre es ein Widerspruch.

Zuweisen und überschreiben

mein_jahrgang = 2010
print(mein_jahrgang)

Jedes Mal, wenn im Programm danach mein_jahrgang steht, verwendet Python den aktuell gespeicherten Wert.

Regeln für Variablennamen
  • Erlaubt sind Buchstaben, Ziffern und der Unterstrich _.
  • Der Name darf nicht mit einer Ziffer beginnen.
  • Gross- und Kleinschreibung macht einen Unterschied: alter und Alter sind zwei verschiedene Variablen.
  • Wörter, die Python schon selbst benutzt, solltest du nicht als Variablennamen verwenden, zum Beispiel print, input, str, int, list, sum oder type. Nach print = 5 meldet Python zwar keinen Fehler, aber print("Hallo") funktioniert danach nicht mehr.
  • Schlüsselwörter wie if, else, for, while und def sind ganz gesperrt. Python meldet dort sofort einen SyntaxError.
  • Wähle aussagekräftige Namen: anzahl_schueler statt a. Besteht der Name aus mehreren Wörtern, trennt man sie mit Unterstrichen.

Was passiert im folgenden Programm?

mein_jahrgang = 2010
print(mein_jahrgang)
print(mein_jahrgang + 1)
print(mein_jahrgang)
2010
2011
2010

Der Wert der Variable hat sich nicht geändert, obwohl wir in der Mitte + 1 gerechnet haben. Wir haben das Ergebnis nur ausgegeben. Ändern lässt sich eine Variable nur mit dem =-Operator:

mein_jahrgang = 2010
mein_jahrgang = mein_jahrgang + 1
print(mein_jahrgang)

Python wertet dabei zuerst die rechte Seite aus (2010+1=20112010 + 1 = 2011) und legt das Ergebnis dann in die Variable auf der linken Seite.

Neben + gibt es die Operatoren - (Subtraktion), * (Multiplikation) und / (Division). Das Minuszeichen dient auch zur Gegenzahl: Hat a den Wert 3, dann hat -a den Wert -3.

Werte einlesen

Mit input können wir den Benutzer nach einem Wert fragen:

alter = input("Wie alt bist du? ")
print(alter)
Wie alt bist du? 15
15
Eingaben sind Text

input liefert das Eingetippte als Zeichenkette zurück, auch wenn es wie eine Zahl aussieht. Zum Ausgeben reicht das. Willst du mit der Eingabe rechnen, musst du sie zuerst in eine Zahl umwandeln. Wie das geht, siehst du in Teil 3.

Aufgaben

Aufgabe 2.1

Berechne von Hand, welche Werte die Variablen am Ende haben. Schreibe dir Zeile für Zeile auf, wie sich die Werte ändern. Prüfe erst danach mit dem Computer.

PythonLoading editor…
first = 2
second = 3
third = first * second
second = third - first
first = first + second + third
third = second * first
Aufgabe 2.2

Berechne wieder von Hand, welchen Wert x am Ende hat, und notiere alle Zwischenwerte.

PythonLoading editor…
x = 10
x = x + x
x = x - 5
x = x * 2
x = x
Aufgabe 2.3

Warum geben diese beiden Programme eine Fehlermeldung? Formuliere für jedes eine Erklärung in einem Satz.

PythonLoading editor…
# Programm 1
print(loesung)
loesung = 4

# Programm 2
4 = x
Aufgabe 2.4

Schreibe ein Programm, das Köpfe, Schultern, Knie und Zehen an einer Party zählt. Die Variable personen ist bereits definiert. Dein Programm soll die vier Variablen koepfe, schultern, knie und zehen berechnen und ausgeben. Es muss für jede Personenzahl funktionieren.

PythonLoading editor…
personen = 7  # vorgegeben
Aufgabe 2.5

Schreibe ein Programm, das die Werte von x und y vertauscht. Nach dem Programm muss der alte Wert von x in y stehen und umgekehrt. Gib beide Werte aus.

PythonLoading editor…
x = 3  # vorgegeben
y = 8  # vorgegeben
Aufgabe 2.6

Schreibe ein Programm, das nach dem Namen fragt und anschliessend begrüsst.

PythonLoading editor…
Aufgabe 2.7

Auf der ersten Zeile deines Programms steht eine Zahl, zum Beispiel x = 5. Alles Weitere soll nur mit x rechnen.

  • (a) Berechne summe als x + 3, differenz als x - 3, produkt als x * 3 und quotient als x / 3. Gib die vier Werte wie unten aus.
  • (b) Ändere nur die erste Zeile auf x = 12 und starte das Programm erneut. Notiere die vier Ergebnisse. Warum genügt diese eine Änderung?
  • (c) Ergänze das Programm um eine einzige Zuweisung ergebnis = (x + 3) * (x - 1) / x - 2 und gib den Wert aus. Rechne ihn für x = 5 zuerst von Hand nach. Lasse danach alle Klammern weg und erkläre, warum etwas anderes herauskommt. Und was passiert bei x = 0?
Summe: 8
Differenz: 2
Produkt: 15
Quotient: 1.6666666666666667
PythonLoading editor…
Aufgabe 2.8

Drei Noten sind gegeben. Berechne den Durchschnitt in einer Variablen schnitt und gib ihn aus. Danach wird note3 auf 5.5 korrigiert. Gib den Durchschnitt erneut aus.

PythonLoading editor…
note1 = 5
note2 = 4.5
note3 = 4
Aufgabe 2.9

Schreibe ein Programm, das nacheinander nach dem Namen, dem Wohnort und der Schule fragt und die drei Angaben anschliessend in einem einzigen Satz ausgibt. Baue den Satz zuerst mit + und danach mit Kommas in print. Notiere, worin sich die beiden Ausgaben unterscheiden und wo du die Leerzeichen selbst setzen musst.

PythonLoading editor…

Weitere Aufgaben

Zusatzaufgabe 2.10

Schreibe ein Programm, das die Anzahl Augen, Flügel und Beine auf einem Bauernhof zählt. Die Variablen schweine, huehner und fliegen sind bereits definiert; dein Programm definiert augen, fluegel und beine und gibt sie aus. Tipp: Fliegen haben sechs Beine und zwei Flügel, Hühner zwei Beine und zwei Flügel.

PythonLoading editor…
schweine = 3  # vorgegeben
huehner = 5  # vorgegeben
fliegen = 20  # vorgegeben
Zusatzaufgabe 2.11

Ein Budget von 100 Franken wird um 15 gekürzt und danach verdoppelt. Schreibe das Programm und gib das Ergebnis aus. Sage vorher voraus, was herauskommt.

PythonLoading editor…
Zusatzaufgabe 2.12

Die drei Werte sollen im Kreis weitergereicht werden: a bekommt den alten Wert von c, b den alten von a und c den alten von b. Du darfst nur eine einzige Hilfsvariable benutzen.

PythonLoading editor…
a = 1
b = 2
c = 3