while
-Schleife & Variablen
Theorie

Denken Sie daran: Beim Programmieren ist zaehler = 0
keine Frage, sondern ein Befehl. Wir befehlen dem Computer, den Wert der Variable zaehler
auf 0
zu setzen.
Die Reihenfolge ist deshalb entscheidend! Der Datenfluss geht von rechts nach links: Rechts von Gleichzeichen steht der zuzuweisende Wert. Links davon steht der Name der Variable.
Regeln für Variablennamen in Python
Variablennamen können mehr oder weniger frei gewählt werden. Es gibt aber einige Regeln, an die wir uns halten müssen. Zudem gibt es Konventionen, an die wir uns halten sollten.
Harte Regeln
Wenn wir diese Regeln nicht befolgen, können wir das Programm nicht ausführen.
- Erlaubt sind nur alphanumerische Zeichen (also Gross- und Kleinbuchstaben, sowie Zahlen), sowie der Underscore (
_
). Umlaute (ä, ö, ü) und Leerschläge sind nicht erlaubt.- ✅
groesse_person_1
- ❌
grösse_person_1
- ❌
groesse person 1
- ✅
- Ein Variablenname muss mit einem Buchstaben (oder mit einem Underscore (
_
)) beginnen (also nicht mit einer Zahl).- ✅
groesse_person_1
- (✅
_groesse_person_1
← nur in ganz spezifischen Fällen1) - ❌
1_groesse_person
- ✅
- Die Gross- und Kleinschreibung wird berücksichtigt.
hallo
undHaLLo
sind also zwei unterschiedliche Variablennamen. - Python-Keywords2 wie
for
undwhile
dürfen nicht als Variablennamen verwendet werden.
Konventionen
(Un)verbindliche Abmachungen, die uns dabei helfen, möglichst einheitlichen Python-Code schreiben. Es gehört zum guten Stil, dass wir uns daran halten.
- Wir verwenden nur Kleinbuchstaben (und ggf. Zahlen).
- ✅
zaehler
- ❌
Zaehler
- ✅
- Wörter werden mit einem Underscore getrennt.
- ✅
anzahl_ecken
- ❌
anzahlecken
- ✅
- Variablen sinnvoll benennen.
- Anders als in der Mathematik verwenden wir beim Programmieren eher nicht Variablennamen wie
a
undx
, da sie wenig über ihre Bedeutung aussagen. Wenn möglich, verwenden wir lieber sprechende Variablennamen wieseitenlaenge
oderanzahl_seiten
.
- Anders als in der Mathematik verwenden wir beim Programmieren eher nicht Variablennamen wie
Datentypen
Jede Variable hat einen bestimmten Datentyp. Dieser ist abhängig von letzten Wert, den wir der Variable zuweisen.
Für den Moment sind für uns folgende Datentypen relevant:
Datentyp | Langbezeichnung | Bedeutung | Beispiel |
---|---|---|---|
int | Integer | Ganzzahl | x = 20 |
float | Floating Point Number | Dezimalzahl (Gleitkommazahl) | x = 2.0 |
str | String | Text | x = '20' x = 'Hallo' |
Theoriefragen
Schauen Sie sich das folgende Python-Programm an (das ist übrigens kein Turtle-Programm, deshalb brauchen wir kein from turtle import *
, etc.):
a = 12
b = 7
b = a
Welchen Wert haben die Variablen a
und b
am Ende des Programms (also nachdem Zeile 3 ausgeführt wurde)? Überprüfen Sie Ihre Antwort, indem Sie auf den -Button klicken.
Woher wissen Sie das?
Welchen Datentyp haben die drei Variablen a
, b
und c
im folgenden Programm?
a = 'Hallo!'
b = 82.143
c = 17
Welchen Datentyp hat die Variable foo
ganz am Ende des folgenden Programms?
foo = 73.1
bar = -1
bar = 0
foo = 14
bar = 'Grüessäch!'
foo = bar
Programmieraufgaben
Dies sind die wichtigsten mathematischen Operatoren in Python:
Zeichen | Operation |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
** | Potenzieren () |
% | Modulo (Restwert einer Ganzzahldivision) |
Erweitern Sie das unten stehende angefangene (aber nicht fertige) Turtle-Programm so, dass ein beliebiges n
-Eck mit Seitenlänge seite
gezeichnet wird.
Mit den hier voreingestellten Werten würde also ein Fünfeck mit Seitenlänge 100 gezeichnet. Sie sollen die
Werte aber auch z.B. zu n = 3
und seite = 150
ändern können, um in dem Fall ein Dreieck mit Seitenlänge 150 zu erhalten.
Schlussendlich muss sich die Turtle bei einem beliebigen n
-Eck immer einmal um insgesamt 360° drehen.
from turtle import *
shape('turtle')
n = 5
seite = 100
Kopieren Sie nun Ihr Programm aus der vorangehenden Aufgabe. Verändern Sie es dann so, dass Sie nicht mehr eine for
-Schleife, sondern eine while
-Schleife verwenden.
Vervollständigen Sie dieses angefangene Turtle-Programm so, dass die Turtle einen Kreis mit dem festgelegten umfang
zeichnet. Als Annäherung für die Zahl können Sie den Wert 3.14
verwenden.
- Für einen Kreis mit Umfang und einen Durchmesser gilt .
- Der Befehl
circle(r)
zeichnet einen Kreis mit Radiusr
.
from turtle import *
shape('turtle')
umfang = 290
Das unten stehende Turtle-Programm zeichnet einen Baum mit drei Ästen, mit folgenden Eigenschaften:
- Der Stamm ist 90 Pixel hoch und hat die Farbe
brown
. - Die Äste sind je 75 Pixel lang und haben die Farbe
brown
. - Die "Blätter" (grüne Punkte) haben je einen Durchmesser von 80 Pixel und die Farbe
green
.
Das Programm funktioniert zwar, aber es gibt ein Problem: Wenn wir z.B. die länge der Äste, die Farbe der Äste oder den Durchmesser der Blätter ändern wollen, dann müssen wir den entsprechenden Wert überall ändern, wo er vorkommt. Das ist aufwändig und fehleranfällig.
Ihre Aufgabe: Nutzen Sie Variablen (ausnahmsweise mal keine Schleife) und schreiben Sie das Programm so um, dass man je nur noch eine einzige Zeile anpassen muss, um folgende Eigenschaften des Baums zu verändern (also eine Zeile pro Eigenschaft):
- Länge der Äste
- Farbe der Blätter
- Durchmesser der Blätter
Im unten stehenden Programm sehen Sie einige Zeilen, die mit einem #
beginnen. Das sind Kommentare. Wir können Kommentare nutzen, um unseren Code zu erklären und zu strukturieren.
Es gilt: Sobald Python ein #
sieht, ignoriert es den Rest dieser Zeile. Wenn also am Anfang der Zeile ein #
steht, wird die gesamte Zeile ignoriert. In einem Kommentar dürfen wir deshalb alles schreiben, was wir möchten.
from turtle import *
left(90)
# Zeichne den Stamm
pensize(40)
pencolor('brown')
forward(90)
# Zeichne den ersten Ast (links)
pensize(20)
left(45)
forward(75)
pencolor('green')
dot(80)
# Zeichne den zweiten Ast (Mitte)
penup()
back(75)
right(45)
pendown()
pencolor('brown')
forward(75)
pencolor('green')
dot(80)
# Zeichne den dritten Ast (rechts)
penup()
back(75)
right(45)
pendown()
pencolor('brown')
forward(75)
pencolor('green')
dot(80)
Footnotes
-
Bei der objektorientierten Programmierung (nicht Teil dieser Unterrichtseinheit) unterscheiden wir zwischen privaten und öffentlichen Variablen. Private Variablen kennzeichnen wir mit einem
_
am Anfang des Variablennamens. ↩ -
Als Keywords bezeichnen wir in Programmiersprachen "reservierte Wörter" – also Wörter mit einer besonderen Bedeutung. In Python sind das beispielsweise die Wörter
for
,while
,import
,if
und einige mehr. Eine vollständige Liste aller Python-Keywords finden Sie 👉 hier. ↩