At My Fingertips

Documentation

Nachdem du im vorherigen Kapitel den modularen Entwurf kennengelernt hast, widmen wir uns nun einem weiteren fundamentalen Konzept in der Programmierung: Schleifen oder Wiederholungen.

Schleifen sind ein zentraler Bestandteil des modularen Designs und ermöglichen es, bestimmte Aufgaben effizient und wiederholt auszuführen. Dies ist besonders nützlich, um unsere Module in vielfältigen Szenarien anzuwenden. In dieser Aktivität wirst du die for-Schleife genauer erkunden, eine äusserst leistungsfähige Kontrollstruktur in der Programmierung, die es ermöglicht, einen bestimmten Anweisungsblock mehrmals auszuführen. Du wirst sehen, wie Schleifen den modularen Ansatz ergänzen und dir dabei helfen, Code effektiver zu organisieren und Aufgaben in wiederholbare Einheiten zu zerlegen.

Die Variable als Name für Werte

Bis jetzt haben wir über "Namen" gesprochen, um Werte in Python zu speichern. Dabei wurde bewusst der Begriff "Variable" vermieden, da die gespeicherten Werte bisher nicht verändert wurden. Allerdings ändert sich das jetzt! Du wirst lernen, Variablen zu verwenden, um Werte zu speichern und diese Werte im Laufe des Programms zu ändern.

Du kannst dir eine Variable wie einen Behälter vorstellen, in den du einen Wert legst. Der Name der Variable bleibt derselbe, aber der Wert, den sie repräsentiert, kann sich ändern. Du kannst diesen Namen verwenden, um auf den aktuellen Wert der Variable zuzugreifen oder ihn zu verändern, indem du der Variable einen neuen Wert zuweist (und damit den alten Wert überschreibst).

In Kapitel A wurde zum ersten Mal eine Variable verwendet. Hier ist noch einmal das entsprechende Codestück:

blattspreite = ellipse(70, 100, gruen)

In diesem Fall hatten wir den Namen blattspreite verwendet, um eine Ellipsen-Grafik zu speichern. Die Variable blattspreite fungiert als Behälter, in dem die Informationen zur Ellipse gespeichert werden können. Man kann diesen Namen später verwenden, um auf die Ellipse zuzugreifen oder sie zu ändern. Dies wird mit der folgenden Codezelle klarer. Klicke auf "AUSFÜHREN" und du siehst: Es werden zwei verschiedene Grafiken ausgegeben, obwohl beide zeige_grafik Aufrufe als Argument den Namen blattspreite erhalten.

Loading...

Jetzt, da du ein Grundverständnis dafür hast, was Variablen sind, lass uns die for-Schleife genauer betrachten.

Die for-Schleife

Eine for-Schleife wird verwendet, um eine bestimmte Anweisung oder einen Anweisungsblock wiederholt auszuführen. Sie eignet sich besonders gut für Aufgaben, die eine vorher festgelegte Anzahl von Durchläufen erfordern. Hier ist eine grundlegende Schablone für eine for-Schleife in Python:

for <Variable> in <Sequenz>:
    <Anweisung 1>
    <Anweisung 2>
    ...
    <Anweisung n>

Zitat aus Dalwigk, F. (2022). Python für Einsteiger: Programmieren lernen mit dem großen Python Buch - Schritt für Schritt zum Python Profi – auch ohne Vorkenntnisse! Eulogia Verlags GmbH., S. 208-9:

Das Schlüsselwort for leitet eine for-Schleife ein. Danach folgt eine <Variable>, in der nacheinander die Werte der <Sequenz> gespeichert werden. Die <Sequenz> steht dabei für ein Objekt, das man schrittweise durchlaufen kann. Man spricht auch von einem iterierbaren Objekt. Zwischen der <Variable> und der <Sequenz> befindet sich das Schlüsselwort in, mit dem du anzeigst, woraus die Werte für die <Variable> geschöpft werden sollen, nämlich aus der <Sequenz>. Die Funktionsweise einer for-Schleife kann man fast schon direkt an dem Schleifenkopf ablesen, denn wenn du die Zeile

for <Variable> in <Sequenz>:

wörtlich übersetzt und statt <Variable> den Begriff Element verwendest, dann steht dort "für jedes Element in der Sequenz ...". Hinter dem Doppelpunkt, der den Schleifenkopf beendet, folgt dann das, was für jedes Element aus der <Sequenz> gemacht werden soll. Die <Anweisungen> werden in jedem Schleifendurchlauf nacheinander abgearbeitet und bilden den sogenannten Schleifenkörper. Beachte, dass die <Anweisungen> eingerückt werden. Die for-Schleife endet, sobald alle Elemente in der <Sequenz> durchlaufen wurden.

Das folgende sog. Flussdiagramm visualisiert den grundlegenden Aufbau einer for-Schleife:

Flussdiagramm für die for-Schleife

Bevor wir wieder mit Grafiken arbeiten, lass uns zur Abwechslung mal zu Zahlen und Wörtern wechseln.

Oben war mehrfach von dem Begriff <Sequenz> die Rede.

Vielleicht hast du angefangen zu zählen: 0, 1, 2, 3, 4, 5. Vielleicht hast du an einen bevorstehenden Voci-Test gedacht - und all die Wörter, die du noch lernen solltest. Oder doch eher an die Namen derjenigen, die du zu deiner Geburtstagsfeier einladen willst?

In all diesen Fällen hast du das Wort Sequenz mit einer Abfolge oder Auflistung gleichgesetzt! Das ist gut, denn: Diesen drei Ideen ist gemeinsam, dass die entsprechenden Zahlen oder Wörter in einer Liste gesammelt werden können. Und ja, Listen gibt es auch in Python!

Datenstruktur Liste

Die Liste ist die wohl wichtigste sog. Datenstruktur, um die du in Python nicht herumkommst. Zum Glück ist sie sehr intuitiv zugänglich, da wir im Alltag überall mit ihr konfortiert werden (wie du gerade gesehen hast).

In Listen werden Daten in einer bestimmten Reihenfolge gespeichert. Und genau das kannst du dir zunutze machen, wenn du in einer for-Schleife als <Sequenz> eine Liste verwendest.

Wichtig: Eine Liste wird durch eckige Klammern gekennzeichnet, in die <Elemente> mit Kommas getrennt eingetragen werden können. Hinter dem letzten Eintrag folgt kein Komma.

Hinweis: Die Tastenkombinationen für eckige Klammern unterscheiden sich leicht zwischen macOS und Windows:

BetriebssystemÖffnende Klammer [Schliessende Klammer ]
macOS⌥ + 5⌥ + 6
WindowsAlt Gr + ü (oder Alt Gr + 8)Alt Gr + ¨ (oder Alt Gr + 9)

Die Zahlen 0 - 5 könnten also z.B. wie folgt in einer Liste stehen:

[0, 1, 2, 3, 4, 5]

...oder auch so, wenn sie in dieser Reihenfolge gespeichert werden sollen:

[3, 2, 1, 4, 5, 0]

Entsprechend sieht es mit Namen aus: Kevin, Mia, Thomas, Claudia und Lukas können als Strings in einer Liste gespeichert werden - und bei Bedarf auch einer Variablen zugewiesen werden.

namen = ["Kevin", "Mia", "Thomas", "Claudia", "Lukas"]

Mit einer for-Schleife kannst du nun z.B. die Listen-Einträge nacheinander ausgeben. Dabei gehst du wie folgt vor:

  • Mit dem Schlüsselwort for leitest du den Schleifenkopf ein.
  • Darauf folgt der Name für die <Variable>. Hier kannst du statt kryptischer Namen wie i (was übrigens für Index steht) oder elem etwas wählen, das zu dem Inhalt deiner Liste passt. Da die erste Liste Zahlen enthält, könntest du z.B. den Variablennamen zahl verwenden.
  • Anschliessend folgt das Schlüsselwort in und deine Liste, die durchlaufen werden soll.
  • Der Schleifenkopf wird mit einem Doppelpunkt beendet.
zahlen = [0, 1, 2, 3, 4, 5]
for zahl in zahlen:

In der Variable zahl werden jetzt nacheinander die Werte aus der Liste zahlen gespeichert. Möchtest du diese ausgeben, übergibst du die Variable zahl als Parameter nicht - wie du das bisher mit den Grafiken getan hast - an die Funktion zeige_grafik, sondern an die Funktion print.

Funktion print

Mithilfe von print lassen sich Werte ausgeben. Neben Zahlen und Strings kann in den Klammern eine Variable übergeben werden, die immer durch ihren Wert ersetzt und ausgegeben wird.

Drücke unten auf "AUSFÜHREN" und überzeuge dich selbst!

Loading...

Die Variable zahl wird in jedem Schleifendurchlauf verwendet, um die Werte aus der Liste zahlen nacheinander zu durchlaufen und zu verarbeiten.

1. Schleifendurchlauf:

  • Zu Beginn ist zahl gleich 0, da 0 der erste Wert in der Liste ist.
  • In diesem Schleifendurchlauf wird print(zahl) ausgeführt, was dazu führt, dass die 0 ausgegeben wird.

2. Schleifendurchlauf:

  • Nachdem der erste Schleifendurchlauf abgeschlossen ist, wird zahl auf den nächsten Wert in der Liste gesetzt, in diesem Fall 1.
  • Jetzt wird print(zahl) erneut ausgeführt und gibt die 1 aus.

3. Schleifendurchlauf:

  • Wieder wird zahl aktualisiert, diesmal auf 2.
  • print(zahl) gibt 2 aus.

4. Schleifendurchlauf:

  • zahl wird auf 3 aktualisiert.
  • print(zahl) gibt 3 aus.

5. Schleifendurchlauf:

  • zahl wird auf 4 aktualisiert.
  • print(zahl) gibt 4 aus.

6. Schleifendurchlauf:

  • Schliesslich wird zahl auf 5 aktualisiert.
  • print(zahl) gibt 5 aus.

Nachdem alle Werte in der Liste durchlaufen wurden, endet die for-Schleife, da keine weiteren Werte mehr übrig sind.

Schreibe bzw. ergänze in der Codezelle unten den entsprechenden Code für eine for-Schleife, welche die Namen der Liste von oben ausgibt!

Loading...

Aber wie erleichtert uns all dies das Erstellen und Bearbeiten von Grafiken?

Studiere dazu die folgenden Code-Beispiele und die jeweilige gewünschte Ausgabe. Aber Achtung, es gibt noch einzelne Lücken, die du füllen, und Fehler, die du beheben musst!

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Als nächstes wenden wir uns einer Funktion zu, die es uns ermöglicht, for-Schleifen noch vielseitiger zu gestalten. Damit kannst du Grafiken auf eine noch effizientere Weise erstellen und bearbeiten.

Die range Funktion in for-Schleifen

Mithilfe der Funktion range kannst du eine Sequenz von aufeinanderfolgenden Zahlen erzeugen, die in einer for-Schleife durchlaufen werden können. Die range Funktion erhält bis zu drei Parameter:

range(start, stop, step)
  • start (optional): Startwert der Sequenz. Standardmässig beginnt start bei 0.
  • stop: Endwert, bis zu dem die Sequenz erzeugt wird. Dieser Wert ist exklusiv, d.h., er ist nicht Teil der erzeugten Sequenz.
  • step (optional): Schritt, mit dem die Zahlen in der Sequenz erhöht werden. Standardmässig beträgt step 1.

Beispiel 1: Einfache range-Verwendung

Dieses Beispiel liefert dasselbe Resultat wie unsere obige Variante mit der Liste [0, 1, 2, 3, 4, 5]: sie gibt die Zahlen von 0 bis 5 aus. Die range Funktion erzeugt automatisch eine Sequenz von 0 bis 5 (exklusiv 6).

Loading...

Beispiel 2: range mit Start- und Endwerten

Hier wird die range Funktion verwendet, um eine Sequenz von 2 bis 7 (exklusiv 8) zu erstellen und in der for-Schleife auszugeben.

Loading...

Beispiel 3: range mit Start-, End- und Schrittwerten

In diesem Beispiel wird die range Funktion verwendet, um eine Sequenz von 1 bis 9 (exklusiv 10) mit einem Schritt von 2 zu erstellen. Dies führt zur Ausgabe der ungeraden Zahlen von 1 bis 9.

Loading...

Damit bist du gerüstet für die nachfolgenden Aufgaben!

Erstelle eine for-Schleife, die mithilfe der range Funktion...

Loading...
Loading...
Loading...
Loading...

Was du gelernt hast

  • Du verstehst das Konzept von Variablen als Namen für Werte und wie sie verwendet werden, um Informationen in Python zu speichern und zu verändern.
  • Du hast gelernt, wie eine for-Schleife aufgebaut ist und verwendet wird, um wiederholte Aufgaben in Python auszuführen.
  • Du kennst die Datenstruktur "Liste" und weisst, wie man Elemente darin speichert und darauf zugreift.
  • Du kannst die Funktion print verwenden, um Textausgaben in deinen Programmen zu erzeugen.
  • Du nutzt die Funktion range in for-Schleifen, um eine Sequenz von Zahlen zu erzeugen.

This activity has been created by Lichtsteiner and is licensed under CC BY-SA 4.0.

for-Schleife

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version 1cd5229 (Tue, 05 Nov 2024 16:55:57 GMT)