Zum Hauptinhalt springen

while-Schleife & Variablen

Theorie

Keine Frage, sondern ein Befehl...

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 und HaLLo sind also zwei unterschiedliche Variablennamen.
  • Python-Keywords2 wie for und while 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 und x, da sie wenig über ihre Bedeutung aussagen. Wenn möglich, verwenden wir lieber sprechende Variablennamen wie seitenlaenge oder anzahl_seiten.

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:

DatentypLangbezeichnungBedeutungBeispiel
intIntegerGanzzahlx = 20
floatFloating Point NumberDezimalzahl (Gleitkommazahl)x = 2.0
strStringTextx = '20'
x = 'Hallo'

Theoriefragen

Frage 1

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?

Laden...
Laden...
Frage 2

Welchen Datentyp haben die drei Variablen a, b und c im folgenden Programm?

a = 'Hallo!'
b = 82.143
c = 17
Frage 3

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

Mathematische Operatoren

Dies sind die wichtigsten mathematischen Operatoren in Python:

ZeichenOperation
+Addition
-Subtraktion
*Multiplikation
/Division
**Potenzieren (aba^b)
%Modulo (Restwert einer Ganzzahldivision)
Aufgabe 1

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.

Drehung

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
Laden...
Aufgabe 2

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.


Laden...
Aufgabe 3

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 π\pi können Sie den Wert 3.14 verwenden.

Umfang, Durchmesser, Radius
  • Für einen Kreis mit Umfang UU und einen Durchmesser dd gilt U=dπU = d \cdot \pi.
  • Der Befehl circle(r) zeichnet einen Kreis mit Radius r.
from turtle import *

shape('turtle')

umfang = 290
Laden...
Aufgabe 4

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
Kommentare

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)
Laden...

Footnotes

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

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