Variablen
In der Informatik verarbeiten wir Informationen, insbesondere bei der Programmierung. Dazu müssen wir diese Informationen irgendwie „zwischenspeichern“.
Beispiele
- wenn du jemandem mit einem Chatprogramm wie WhatsApp schreibst, ist z.B. Telefonnummer von deinem Gegenüber irgendwo als Variable zwischengespeichert, genauso die Nachricht während du sie eintippst.
- bei einem Computerspiel die aktuelle Position der Spielfigur sowie alle anderen Zustände der Spielwelt irgendwo gespeichert sein.
Die Details davon überlassen wir dem Betriebssystem und der Programmiersprache, wir werden später auf die Frage zurückkommen, wo den genau diese Variablen in einem Rechner sind. Für uns ist momentan nur relevant, dass wir jegliche Informationen in einem Programm temporär zwischenspeichern können, und zwar mithilfe von Variablen.
Fachbegriff: Variable
Eine Variable erlaubt uns Werte in einem Programm abzuspeichern um sie
später wiederzuverwenden. Jede Variable hat einen Namen, einen Typ sowie
einen Wert. Eine Variable heisst so weil der Inhalt, also der Wert veränderlich ist.
Definition
Variablen definieren wir mit einem Namen, einem Gleichheitszeichen so-
wie dem Wert der in der Variable gespeichert werden soll.
z.B. wird nachfolgend eine neue Variable mit dem Namen temperatur erstellt und mit dem Wert 25 "befüllt".
Der Datentyp von dieser Variable ist eine ganze Zahl (Integer, int).
temperatur = 25
Der Name einer Variable kann mehr oder weniger frei gewählt werden1.
Datentypen
Variablen können unterschiedliche Typen ("Arten") von Informationen beinhalten wie z.B. Zahlen oder Buchstaben.
| Typ | Python Name | Beispiele |
|---|---|---|
| Ganze Zahl | int |
-5, 0, 3, 605 |
| Gleitkommazahl (Dezimalzahl) | float |
-2.432, 5.234 |
| Zeichenkette/Text/Buchstaben | str |
"Abc", "Ein Wort" |
| Wahrheitswert (Boolean) | bool |
True, False |
| Array | list |
[4,2,3], ["Rot", "Blau"] |
Bei Variablen vom Typ Zeichenkette muss bei der Definition der Wert mit Anführungszeichen (" oder ') umgeben sein.
Beispiel: Variablen definieren
Definiere einmal eine eigene Variable, mit einem freigewähltem Namen und Wert. Klicke danach auf den linken blauen Knopf. Wenn dein Programm keinen Syntaxfehler ausweist, kommt eine Meldung "Ohne Fehler beendet"
Lösungsvorschlag
1 2 3 4 5 6 7 8 | |
Variablen kombinieren
Variablen können verändert werden und zu neuen kombiniert werden. Dabei können sogar mathematische Operanden verwendet werden wie +, -, / und *, ähnlich wie bei einem Taschenrechner.
ersteVariable = 2
zweiteVariable = 7
dritteVariable = ersteVariable + zweiteVariable
Hierbei wurden drei Variablen definiert, wobei die dritteVariable aus einer Rechnung mit den zwei ersteren entsteht.
Wie wissen wir nun was der Wert von dritteVariable ist?
Ausgabe
Wenn wir den Wert von einer Variable wissen wollen, können wir ihn mit dem Befehl print() in der Standardausgabe ausgeben.
Wo sich die Standardausgabe genau befindet, ist abhängig von der Programmierumgebung.
Dem Befehl print() können ein oder mehrere Werte (Argumente) übergeben werden, diese Werte werden
danach für uns Benutzer sichtbar.
Beispiel: Ausgabe mit print()
Führe dieses Programm aus, um zusehen was bei print() passiert.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Wichtig: Gleichzeichen
Die Zuweisung in der Programmierung ist nicht dasselbe wie eine Gleichung in der Mathematik. In Python bedeutet z.B.
x = x + 1
x neuerdings den bisherigen Wert von x + 1 enthält.
Wenn wir dies mathematisch betrachten würden, hätten wir die Gleichung \(x = x + 1\) welche aber
gar keine Lösung hat!
Aufgaben
Rechteckfläche berechnen
Question
Schreibe ein Programm welches die Fläche von einem Rechteck mit Länge laenge und Breite
breite berechnet. Dazu kannst du Variablen verwenden.
Berechne zuerst für die Werte laenge=3 und breite=2.
Gibt das Ergebnis mit dem print()-Befehl aus.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
laenge = 3
breite= 2
flaeche = laenge * breite
print(flaeche)
Mehrere Variablen
Question
Wir können Variablen sozusagen umbenennen, indem wir neue Variablen mit anderem Namen definieren. Dies wird aber gelegentlich etwas unleserlich. Versuche das folgende Programm zu verstehen und vorherzusagen was die Ausgabe ist.
1 2 3 4 5 6 7 8 9 | |
Lösung
vier
zwei
eins
Gleichseitiges Dreieck
Question
Variablen sind noch nützlich wenn wir gewisse Informationen mehrmals benötigen.
Z.B. wenn wir ein gleichseitiges Dreieck zeichnen wollen mit einer bestimmten Seitenlänge.
Die Seitenlänge muss dabei drei mal programmiert werden, dies ist fehleranfällig und hindert uns
das Programm leicht zu adaptieren.
Mit Variablen können wir die Information zur Seitenlänge einmalig zwischenspeichern.
- Zeichne ein gleichseitiges Dreieck dessen Seiten die Länge 100 haben.
- Speichere nun die Seitenlänge in einer Variable z.B.
seitenlaengeund verwende diese in deinem Programm - Dein Programm kann nun leicht adaptiert werden um Dreiecke mit anderen Seitenlängen zu zeichnen, z.B.
50
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
from gturtle import *
makeTurtle()
seitenlaenge = 100
right(30)
forward(seitenlaenge)
right(120)
forward(seitenlaenge)
right(120)
forward(seitenlaenge)
right(120)
Eingabe
Analog zur Ausgabe mi print() gibt es auch eine Eingabe. Dadurch können wir
als Benutzer dem Programm Informationen übergeben, während es schon läuft.
Dies ist eine grundlegende Funktion von Programmen, jedes mal wenn ihr den Rechner
benutzt, verwendet ihr im Prinzip diese Eingabe.
Mit dem Befehl input() kann das Programm "pausiert" werden bis eine Eingabe durch den Benutzer geschieht.
Die eingegebenen Daten können nacher sehr praktisch in einer Variable gespeichert werden.
Probier dies gleich einmal aus:
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Aufgaben
Frageprogramm
Question
Arbeite mit der Person neben dir. Überlege dir eine Frage, die du noch nicht über sie weisst. Überlege dir unter welcher Variable du die Information abspeichern möchtest. Gib danach die Information wieder aus.
Am Schluss gibst du dieser Person deinen Rechner und lässt sie diese Fragen beantworten.
Erweiterung: Frage mehr als nur eine Frage und fasse die Antworten am Schluss zusammen.
Du kannst mehrere Zeichenketten aneinander hängen mit einem +.
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
name = input("Was ist dein Name?")
# Variante: Nur eine Frage
wohnort = input("Wo wohnst du")
# Auf einzelnen Linien ausgegeben...
print("Der Wohnort von")
print(name)
print("ist")
print(wohnort)
# Erweiterung: mehrere Fragen
lieblingsfarbe = input("Welches ist deine Lieblingsfarbe?")
print(name + " wohnt in " + wohnort)
print(lieblingsfarbe + " ist die Lieblingsfarbe von " + name)
Rechteckumfang berechnen
Question
Schreibe ein Programm welches den Umfang von einem Rechteck mit Länge laenge und Breite
breite berechnet. Dazu kannst du Variablen verwenden.
Berechne zuerst für die Werte laenge=3 und breite=2.
Gibt das Ergebnis mit dem print()-Befehl aus.
Erweiterung: Frage nun den Benutzer nach der Länge und Breite. Dabei muss die Eingabe aber noch in
ein Zahl umgewandelt werden, verwende dazu die Funktion int().
Mit int() kann eine als Text repräsentierte Ziffernfolge (ASCII) in eine Zahl (Dezimalsystem) umgewandelt werden: z.B. zahl = int("123")
# Tests (Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)
Lösung
laenge = 3
breite= 2
umfang = 2 * laenge + 2 * breite
print(umfang)
print("Umfangrechner: Bitte gib zwei Zahlen ein")
laenge = int(input("Länge:"))
breite = int(input("Breite:"))
umfang = 2 * laenge + 2 * breite
print(umfang)
-
Gewisse Einschränkungen gibt es schon, z.B. darf der Name nicht mit einer Zahl oder gewissen Sonderzeichen beginnen wie ?,.!-/*+(){}[] usw. Zudem empfiehlt es sich nicht die reservierte Schlüsselwörter (z.B.
int) der Pythonsprache zu verwenden. dies ist zwar teilweise erlaubt, aber eben, nicht wirklich empfehlenswert. ↩
# Tests(Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)