Seite anzeigenÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ===== Python - die oft genutzte Programmiersprache ===== {{ :gf1:python.png?direct&100|https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Python.svg/270px-Python.svg.png}} {{ :gf1:guido_van_rossum.jpg?direct&100|https://en.wikipedia.org/wiki/File:Guido_van_Rossum_in_PyConUS24_(cropped).jpg}} 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 <wrap lo>([[https://pypl.github.io/PYPL.html | Popularity of Programming Language Index]] ist ein Ranking, das die Popularität verschiedener Programmiersprachen anhand der Häufigkeit ihrer Tutorials auf Google abmisst)</wrap> die häufigste verwendete Programmiersprache weltweit mit einem Anteil von 29,8% im Januar 2025. // **Nice to know**//\\ Der niederländische Entwickler [[https://en.wikipedia.org/wiki/Guido_van_Rossum | 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 [[https://www.python-kurs.eu/python3_entstehung_python.php |hier]]. ===== Micro:bit - Ein kleiner Computer ===== {{ :gf1:bbc_logo_2021.png?direct&200|https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/BBC_Logo_2021.svg/375px-BBC_Logo_2021.svg.png}} 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. {{ https://cdn.sanity.io/images/ajwvhvgo/production/4de361b622ac9bf5e8b9c3109a3935dd47b96167-1490x609.png?w=653&q=80&fit=max&auto=format }} <WRAP nicebox green> **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... </WRAP> Weitere technische Details dazu unter [[https://tech.microbit.org/hardware/| Hardwareinformationen]] ==== Programmierumgebung entdecken ==== Für den Anfang beginnen wir mit dem [[https://python.microbit.org/v/3|Online-Editor]], denn hier gibt es eine ziemlich nützliche API<sup>*</sup>, die Verbindung zum Microbit funktioniert gut und der Editor ist einfach zu bedienen. Der Code ist auf dem OneNote vorhanden. \\ <wrap lo><sup>*</sup> API heisst Application Programming Interface und ist eine Sammlung von Befehlen, Funktionen, vieles mehr, die zum Programmieren verwendet werden können. </wrap> \\ **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. <WRAP nicebox green> **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 ([[https://www.hartware.de/2021/03/10/die-besten-chromium-basierten-browser-fuer-sie/| chrombasiert]]) diesen [[https://python.microbit.org/v/3|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: <code python> 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 </code> - 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 von ''while 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? - Eine Verbildlichung des Programms ist in folgendem Diagramm zu sehen. Passen Sie dies nun an, nachdem Sie die Aufgabe 2 gelöst haben.\\ {{:gf1:aktigiagramm_a1.png?300|}} <accordion> <panel title="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: <WRAP nicebox grey> 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. </WRAP> 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 [[https://www.w3schools.com/python/module_math.asp | 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. | </panel> </accordion> </WRAP> <WRAP nicebox yellow> <color #7092be>**Display**</color>\\ 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! <color #7092be> Viel Spass beim Ausprobieren</color>! :!: Ein [[https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/images.html |weiterführender Link]]zur ausführlichen Dokumentation. </WRAP> ===== 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. \\{{ :gf1:variablekofofer3.png?direct&300|}} 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: <code python> kiste = 100 </code> Hier wird der Wert 100 in die Variable ''kiste'' gespeichert. Das ''='' bedeutet dabei nicht "ist gleich", sondern "speichere den Wert in der Variable". Beispiel: <code python> kiste = 100 kiste = 50 kiste = 50 + kiste </code> 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. <code python> 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 </code> 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: <code python kiste.py> from microbit import * kiste=2 kiste=kiste * 3 display.scroll('KISTE=') display.show(kiste) </code> 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. \\ <WRAP nicebox green> **Aufgabe 3 - Variablen und mehr**\\ Gegeben ist das folgende Programm: <code python 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) </code> **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 [[https://learningapps.org/watch?v=pma7bw9ft25| Learningapp]]. <accordion> <panel title="Tipps"> === Addition: + === <code python> result = 5 + 3 # result ist 8 </code> === Subtraktion: - === <code python> result = 5 - 3 # result ist 2 </code> === Multiplikation: * === <code python> result = 5 * 3 # result ist 15 </code> === Division: / === <code python> result = 6 / 3 # result ist 2.0 (erzeugt ein Float) </code> === Potenzieren: ** === <code python> result = 2 ** 3 # result ist 8 (2 hoch 3) </code> === Wurzeln:=== <color #7092be>Wurzelziehen: Verwende die math-Bibliothek für die Quadratwurzel</color> <code python> 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) </code> </panel> </accordion> </WRAP> [[gf1:programmieren4|Weiter]] gf1/programmieren2.txt Zuletzt geändert: 2025/05/06 15:18von marroc