Dies ist eine alte Version des Dokuments!
Python - die oft genutzte Programmiersprache
Im Grundlagenfach Informatik werden Sie die Programmiersprache Python und ganz kurz noch JavaScript kennenlernen. Als Erinnerung, HTML ist keine Programmiersprache ;)
Python ist laut PYPL-Index ( Popularity of Programming Language Index ist ein Ranking, das die Popularität verschiedener Programmiersprachen anhand der Häufigkeit ihrer Tutorials auf Google abmisst) die häufigste verwendete Programmiersprache weltweit mit einem Anteil von 29,8% im Januar 2025.
Nice to know
Der niederländische Entwickler Guido van Rossum hat um 1990 die Programmiersprache Python entwickelt, um eine Lernumgebung für Programmiersprachen mit einfacher Syntax und Lesbarkeit zu haben. Die durch diese Sprache geschulten Programmier-Kompetenzen sollten gleichzeitig auf andere Sprachen übertragen werden können.
Guido van Rossum war ein Fan der britischen Komikertruppe Monty Python, daher der Name „Python“, weit weg von der gleichnamigen Schlage…
Weitere Informationen hier.
Micro:bit - Ein kleiner Computer
Um erste Erfahrungen mit der Programmiersprache Python zu machen, gibt es viele Möglichkeiten.
Wir werden dies mithilfe des Micro:bits (BBC micro:bits) tun. Dies ist eine Art Minicomputer, ein so genannter Einplatinencomputer, welcher 2015 von BBC (British Broadcasting Corporation) entwickelt wurde, um die Werkzeuge für eine bessere Schulbildung im Bereich der Informationstechnik bereitzustellen. Der Micro:bit kann über verschiedener Entwicklungsumgebungen programmiert werden.
Die Hardware
Sie halten einen Micro:bit in den Händen, doch was genau ist dieses kleine Ding und was kann es alles?
Hier eine Übersicht der Hardwarekomponenten.
Aufgabe 1: Hardware → Micro:bit kennenlernen Finden Sie auf Ihrem Microbit die einige der unten aufgelisteten Komponenten. Einige davon sind kursiv geschrieben, erinnern Sie sich über deren Funktionen innerhalb eines Computers.
- Prozessor
- Lautsprecher, Mikrophon
- Beschleunigungssensor
- LEDs (vorne und hinten)
- Logo
- Schnittstellen
- Pins (inklusive Masse)
- Weitere Hardwarekomponenten…
Weitere technische Details dazu unter Hardwareinformationen
Programmierumgebung entdecken
Für den Anfang beginnen wir mit dem Online-Editor, denn hier gibt es eine ziemlich nützliche API*, die Verbindung zum Microbit funktioniert gut und der Editor ist einfach zu bedienen. Der Code ist auf dem OneNote vorhanden.
* API heisst Application Programming Interface und ist eine Sammlung von Befehlen, Funktionen, vieles mehr, die zum Programmieren verwendet werden können.
Verbindung zum Microbit
Bevor wir mit dem Programmieren eines Microbits starten können ist eine Verbindung zwischen dem Computer und dem Micro:bit nötig. Im folgenden Auftrag ist beschrieben, wie dies gemacht werden soll.
Python ist eine Programmiersprache, bei der man einen Computer über Text-Befehle steuert, die sequenziell, das heisst, einer nach dem anderen abgearbeitet und ausgeführt werden (Wie bei einem Muffins-Rezept).
Zuoberst werden dabei immer die entsprechenden Python-Module (vordefinierte Befehle, ganze Befehlspakete, vordefinierte Konstanten… aus der Python Bibliothek), die man für das jeweilige Programm braucht (zum Beispiel from microbit import *).
Danach folgen die eigentlichen Befehle, aus denen das Programm besteht.
Aufgabe 2: Der Microbit - Display für Ausgaben
- Verbinden Sie den BBC:Microbit über das beigliegende USB-Kabel mit Ihrem Computer.
- Öffnen Sie in einem Browser ( chrombasiert) diesen Online-Editor in einem separaten Tab!
- Falls sich im Editor schon Programmiercode befindet, dann entfernen Sie diesen! Kopieren Sie den folgenden Code in den Editor:
from microbit import * #Import aller Bibliotheken counter = 0 # Startwert der Variable display.scroll('press A') while True: # wird durchgeführt, solange die Bedingung true ist, da ''True==True'' immer stimmt, ist dies eine Endlos-Schleife. if button_a.was_pressed(): # Überprüfen, ob Knopf A gedrückt wurde, wenn dies der Fall war, dann... counter = counter + 1 # Erhöhe die Variable namens counter um 1 display.scroll(counter) # Zeige den Wert auf dem Display
- Klicken Sie anschliessend auf Send to micro:bit! Nun sollte eine Meldung erscheinen, dass Sie den Mocrobit mit dem Computer verbinden sollen. Das haben Sie schon gemacht, also klicken Sie zwei mal auf Next, wählen Sie den Microbit im nächsten Fenster aus und bestätigen Sie die Auswahl mit Connect!
- Ändern Sie das Programm, so dass von 60 rückwärtsgezählt wird, jedesmal wenn der Knopf A gedrückt wird.
- Diskutieren Sie zu zweit die folgenden Fragen!
- Was ändert sich, wenn
while counter>0:steht, anstelle vonwhile True:? - Warum genau muss
if button_a.was_pressed():programmiert werden? - Was bedeutet die Zeile „from microbit import *“? Diskutieren und testen Sie, indem Sie diese Zeile weglassen. Was passiert?
Was import bedeutet
Sicher haben Sie sich auch schon gefragt, warum die beiden Zeile microbit import * und math import * nötig sind oder was genau import * bedeutet. Grundsätzlich kann dies so beschrieben werden:
Ein import-Befehl in Python holt nützliche Werkzeuge aus einem anderen Programm (einem Modul, das beim Editor gespeichert wird) in dein aktuelles Programm. Das bedeutet, du kannst diese Werkzeuge direkt verwenden, ohne sie selbst erstellen zu müssen. Es ist wie ein Baukasten, bei dem du fertige Teile verwendest, um schneller und einfacher etwas Neues zu bauen.
Bezogen auf Python und auch auf den Micro:bit bedeutet dies:
In Python gibt es vordefinierte Bibliotheken (eine Sammlung von Dateien, sogenannten Modulen), die von jedem Programmierer genutzt werden kann, es muss somit keine Erweiterung installiert werden, die benötigten „Befehls- und Begriffspakete“ können durch die Zeile from micro:bit import … dazu geladen werden. Dadurch können die Funktionen bwz. Methoden (wie etwa display.scroll(„Hey“) oder display.clear()), vordefinierte Werte (wie math.pi) und andere Definitionen eines Moduls (beispielsweise sind math oder auch display ein Modul) zum Programmieren genutzt werden. Diese sind in diesen Befehls- und Begriffspaketen definiert.
Folgenden (oder ähnliche) Importbefehle könnten für Sie nützlich sein:
| Befehl | Bedeutung |
|---|---|
import * | Importiert alle Python-Module, nicht spezifisch auf das Problem zugeschnittenes Laden von Modulen (Bausteinen). Das * bedeutet, alle Module. |
from microbit import * | Importiert alle Microbit-Module, nicht spezifisch auf das Problem zugeschnittenes Laden von Modulen |
from math import * | Importiert alle math-Module → die Liste der Befehle und Funktionen |
from microbit import display | Hier wird nur spezifisch das display-Modul und nicht die gesamte Micro:bit-Bibliothek (micro:bit-library) geladen. |
Display
Neben dem Befehl display.scroll() gibt es ebenfalls den Befehl display.show(), der nützlich ist, wenn man nur ein einzelnes Zeichen (zum Beispiel einen Buchstaben) anzeigen möchte.
Es ist weiter möglich, nur einzelne Pixel zu manipulieren mit Hilfe des Befehls display.set_pixel(x,y,b), wobei x die Spalte, y die Zeile und b die Hellighkeit (brightness) angibt. Die Helligkeit kann zwischen 0 und 9 liegen.
Der Befehl display.set_pixel(0,0,9) würde das Pixel oben links auf die maximale Helligkeit setzen! Viel Spass beim Ausprobieren!
Ein weiterführender Linkzur ausführlichen Dokumentation.
Programmierkonzepte Variable
Ziel dieses Teils ist es, erste Programmiererfahrungen in Python zu sammeln und grundlegende Programmierkonzepte zu verstehen. Es geht darum, diese Konzepte nicht nur auszuprobieren, sondern auch in einfachen Beispielen anzuwenden.
\\
Variablen sind in der Programmierung sehr nützlich. Man kann sie sich wie Behälter vorstellen, in denen Daten gespeichert werden. Stell dir eine Kiste vor, in der du etwas aufbewahrst – der Inhalt der Kiste ist der Wert der Variable.
Beispiel:
kiste = 100
Hier wird der Wert 100 in die Variable kiste gespeichert. Das = bedeutet dabei nicht „ist gleich“, sondern „speichere den Wert in der Variable“.
Beispiel:
kiste = 100 kiste = 50 kiste = 50 + kiste
In diesem kurzen Programm wird der Variable kiste nacheinander verschiedene Werte zugewiesen:
- Zuerst wird kiste auf 100 gesetzt.
- Dann wird kiste auf 50 gesetzt, der Wert 100 wird überschrieben.
- Schließlich wird kiste um 50 erhöht, also auf 100 gesetzt (50 + 50).
Auch beim Arbeiten mit dem Micro:bit arbeitet, werden uns Variablen einen guten Dienst leisten.
Im Beispiel unten ist counter eine Variable, deren Wert sich während des Programmdurchlaufs ändert.
from microbit import * #Import aller Bibliotheken counter = 0 # Startwert der Variable display.scroll('press A') while True: # wird durchgeführt, solange die Bedingung true ist, da ''True==True'' immer stimmt, ist dies eine Endlos-Schleife. if button_a.was_pressed(): # Überprüfen, ob Knopf A gedrückt wurde, wenn dies der Fall war, dann... counter = counter + 1 # Erhöhe die Variable namens counter um 1 display.scroll(counter) # Zeige den Wert auf dem Display
Wenn wir ein Beispiel mit der Kiste von weiter oben wieder aufnehmen, dann könnten wir dies auf den Micro:bit wie folgt ausführen lassen:
- kiste.py
from microbit import * kiste=2 kiste=kiste * 3 display.scroll('KISTE=') display.show(kiste)
In diesem Beispiel ist die Variable kiste zuerst auf den Wert 2 gesetzt, dieser Wert wird aber direkt in der nächsten Zeile verdreifacht und anschliessend auch angezeigt.
Aufgabe 3 - Variablen und mehr
Gegeben ist das folgende Programm:
- Rechner1.py
#Rechner 1 from microbit import * from math import * #Variablen definieren und einen Wert zuweisen a=3 b=5 c=0 #Display.scroll dient zum Anzeigen von Werten oder Text display.scroll('a=') display.scroll(a) display.scroll('b=') display.scroll(b) display.scroll('a+b=') display.scroll(a+b) display.scroll('c=') display.scroll(c)
Auftrag
- Studieren Sie zu zweit das Programm Rechner 1 und kommentieren Sie jede einzelne Zeile dazu.
- Verändern Sie das Programm, so dass alle vier Grundoperationen (+,-, \cdot, :) und das Potenzieren und Wurzelziehen möglich ist. Kontrollieren Sie das Funktionieren des Programms Rechner 1, indem Sie die Werte der Variablen verändern.
- Lösen Sie das folgende Learningapp.
Tipps
Addition: +
result = 5 + 3 # result ist 8
Subtraktion: -
result = 5 - 3 # result ist 2
Multiplikation: *
result = 5 * 3 # result ist 15
Division: /
result = 6 / 3 # result ist 2.0 (erzeugt ein Float)
Potenzieren: **
result = 2 ** 3 # result ist 8 (2 hoch 3)
Wurzeln:
Wurzelziehen: Verwende die math-Bibliothek für die Quadratwurzel
import math result = math.sqrt(9) # result ist 3.0 Für andere Wurzeln kannst du Potenzen verwenden: result = 27 ** (1/3) # result ist 3.0 (Kubikwurzel von 27)
