Ein frei kopier- und anpassbares Lehrmittel von eduskript.org

Woche 1: Neustart

Notstrom. Irgendwo im Frachtraum der ESA Whatelse bootet MOP-7, ein kleiner Wartungsroboter. Niemand antwortet. Nur die Schiffs-KI namens Aurora.

Survival-Kit an Befehlen

move() · turn_left() · turn_right() · press_switch() · read_log() · print(...)

Jeder Befehl steht auf einer eigenen Zeile. Nach Run können Sie das Programm Schritt für Schritt vor- und zurückspulen.

Level 1: Aufwachen

Fahren Sie zum Ausgang.

PythonLoading editor…
move()

Level 2: Licht an

Der Ausgang liegt hinter einer verschlossenen Tür. Irgendwo muss ein Schalter sein. Und das Terminal im Nebenraum weiss vielleicht, was hier los ist.

PythonLoading editor…
move()

Eigene Befehle: Funktionen

MOP-7 kennt nur ein paar Befehle. Aber Sie können ihm neue beibringen. Ein eigener Befehl heisst in Python Funktion: ein kleines Unterprogramm, das eine bestimmte Aufgabe erledigt und das Sie immer wieder verwenden können.

Funktionen definieren
  • Eine Funktion wird mit dem Schlüsselwort def definiert.
  • Danach folgen der Name (hier umdrehen), runde Klammern () und ein Doppelpunkt :.
  • Der Inhalt der Funktion ist ein kleines Unterprogramm mit Befehlen. Die Befehle sind eingerückt: Sie beginnen nicht links am Rand, sondern ein Stück weiter rechts. So sieht Python, welche Zeilen zur Funktion gehören.

Wie rückt man ein?

Drücken Sie am Anfang der Zeile einmal die Tabulator-Taste. Zurück an den linken Rand kommen Sie mit Shift + Tabulator oder mit der Löschtaste ⌫.

  • Die Definition allein tut noch nichts. Erst der Aufruf umdrehen() führt die Befehle aus, so oft Sie wollen.

Ab jetzt reicht umdrehen(). Was genau darin passiert, müssen Sie nicht mehr jedes Mal hinschreiben. Das nennt man Abstraktion: Sie bauen sich aus einfachen Teilen grössere Werkzeuge.

Level 3: Treppenhaus

Eine Treppe nach unten. Jede Stufe ist gleich. Bringen Sie MOP-7 eine Stufe als eigenen Befehl bei. MOP-7 hat nur Speicher für 12 Anweisungen.

PythonLoading editor…
def stufe():
    turn_right()
    # ...

move()

Ihre Werkzeugkiste

Befehle, die Sie immer wieder brauchen, legen Sie in eine eigene Datei.

  1. Im Editor mit + eine neue Datei anlegen und befehle.py nennen.
  2. Ihre Befehle hineinschreiben, zum Beispiel umdrehen(). Die MOP-7-Befehle wie move() kennt die Datei automatisch.
  3. Mit Rechtsklick auf die Registerkarte Move to Skript scope wählen. Jetzt ist die Datei auf jeder Seite dieses Skripts verfügbar – also in jedem Level.
  4. In einem Level holen Sie Ihre Befehle mit from befehle import *.

Level 4: Der lange Gang

Holen Sie das Beweisstück am Ende des Gangs und bringen Sie es zum Ausgang. Schreiben Sie sich dazu in befehle.py einen Befehl drei_vor(). MOP-7 hat hier nur Speicher für 9 Anweisungen: Was in Ihrer Werkzeugkiste steht, zählt nicht dazu.

PythonLoading editor…
from befehle import *

Variablen

Eine Variable ist ein beschrifteter Speicherplatz: Sie geben einem Wert einen Namen und können ihn später wieder abrufen oder ändern.

felder = 0              # Variable anlegen: Name, Gleichheitszeichen, Wert
felder = felder + 3     # neuen Wert berechnen und wieder in «felder» speichern
print(felder)           # gibt 3 aus

Beachten Sie:

  • Das = heisst in Python nicht «ist gleich», sondern «speichere in»: Rechts wird zuerst gerechnet, dann kommt das Ergebnis in die Variable links.
  • felder = felder + 3 nimmt also den alten Wert, zählt 3 dazu und überschreibt die Variable mit dem neuen Wert.
  • Mit print(felder) zeigen Sie den aktuellen Wert unter der Welt an.

Im Step-Player sehen Sie Zeile für Zeile, wann die Variable sich ändert.

Level 5: Messdaten

AURORA will wissen, wie lang der Gang ist. Zählen Sie die Felder in einer Variable und geben Sie am Schluss die Zahl aus. Ihre Werkzeugkiste dürfen Sie benutzen.

PythonLoading editor…
from befehle import *

felder = 0
print(felder)

Fall der Woche

Die Crew ist verschwunden. Ihre letzte Spur: eine Party. Wo ist die Crew?

Fallwand

0 evidence · 0 levels solved

Nothing found yet.