Python (Programmiersprache) - aiMOOC


Python (Programmiersprache) - aiMOOC
Einleitung
Python ist eine moderne, weit verbreitete Programmiersprache, mit der Du sehr unterschiedliche digitale Probleme lösen kannst: kleine Automatisierungen, Datenanalyse, Webentwicklung, Künstliche Intelligenz, Robotik, Simulation, Softwaretests, Spielentwicklung und vieles mehr. Python gilt als besonders gut lesbar, weil die Sprache auf eine klare Syntax, sprechende Namen und strukturierte Einrückung setzt. Dadurch eignet sich Python sowohl für den Einstieg ins Programmieren als auch für professionelle Projekte in Wissenschaft, Wirtschaft, Bildung und Open-Source-Software.

Dieser aiMOOC führt Dich von den Grundideen der Sprache zu eigenen kleinen Programmen. Du lernst zentrale Datentypen, Variablen, Kontrollstrukturen, Funktionen, Module, Fehlerbehandlung, Objektorientierte Programmierung und den Umgang mit Paketen kennen. Außerdem reflektierst Du, wann Python eine gute Wahl ist, wo Grenzen liegen und wie Du verantwortungsvoll mit Code, Daten und fremden Bibliotheken umgehst.
Lernziele
Nach diesem aiMOOC kannst Du erklären, was Python als Programmiersprache auszeichnet, warum Lesbarkeit und Einrückung wichtig sind und wie einfache Programme aufgebaut werden. Du kannst grundlegende Algorithmen in Python formulieren, typische Programmprobleme untersuchen, kleine Programme verbessern und beurteilen, welche Rolle Python in Datenwissenschaft, Webentwicklung, Automatisierung und KI spielt.
- Grundlagen der Programmierung: Du beschreibst Begriffe wie Variable, Ausdruck, Anweisung, Datentyp, Schleife und Funktion.
- Python-Syntax: Du erkennst die Bedeutung von Einrückung, Doppelpunkt, Kommentaren und sauberer Namensgebung.
- Problemlösen: Du zerlegst Aufgaben in kleine Schritte und setzt sie als Algorithmus um.
- Debugging: Du untersuchst Programmprobleme systematisch und nutzt Hinweise des Interpreters.
- Transfer: Du entwickelst eigene Ideen für Python-Projekte und bewertest Chancen sowie Risiken.
Was ist Python?
Python ist eine Hochsprache, also eine Programmiersprache, die näher an menschlich lesbaren Formulierungen liegt als an Maschinensprache. Python-Code wird meist durch einen Interpreter ausgeführt. Der verbreitetste Interpreter heißt CPython und ist die Referenzimplementierung der Sprache. Daneben gibt es weitere Implementierungen wie PyPy, MicroPython oder CircuitPython, die für besondere Zwecke eingesetzt werden können, etwa für höhere Ausführungsgeschwindigkeit oder kleine Mikrocontroller.
Typisch für Python ist die Verbindung aus Einfachheit und großer Ausdrucksstärke. Ein kurzes Programm kann bereits nützliche Aufgaben erledigen, aber dieselbe Sprache kann auch für sehr große Softwareprojekte genutzt werden. Python unterstützt mehrere Programmierparadigmen, darunter imperative Programmierung, strukturierte Programmierung, funktionale Programmierung und objektorientierte Programmierung. In der Praxis bedeutet das: Du kannst zunächst einfache Schritt-für-Schritt-Programme schreiben und später lernen, wie man Programme mit Funktionen, Klassen und Modulen sauber organisiert.
Ein sehr kleines Python-Programm sieht so aus:
<syntaxhighlight lang="python"> name = "Ada" print("Hallo, " + name + "!") </syntaxhighlight>
Die erste Zeile speichert den Text Ada in einer Variable. Die zweite Zeile ruft die Funktion print auf und gibt eine Begrüßung aus. Auch wenn dieses Beispiel klein ist, enthält es wichtige Grundideen: Ein Programm verarbeitet Daten, führt Anweisungen aus und erzeugt eine Ausgabe.
Warum ist Python so beliebt?
Python ist beliebt, weil die Sprache viele Probleme mit wenig, gut lesbarem Code lösbar macht. Die offizielle Dokumentation beschreibt Python als leicht zu lernende und leistungsfähige Sprache mit effizienten höheren Datenstrukturen und einem einfachen, aber wirksamen Ansatz für objektorientiertes Programmieren.<ref>Python-Dokumentation: The Python Tutorial, abgerufen am 14. Juni 2026.</ref> Die umfangreiche Standardbibliothek liefert viele Werkzeuge bereits mit, zum Beispiel für Dateien, Mathematik, Zufallszahlen, Internetprotokolle, Textverarbeitung, Datumsangaben und Tests.
Ein weiterer Grund ist das große Ökosystem. Über den Python Package Index können Entwicklerinnen und Entwickler zahlreiche zusätzliche Pakete finden und installieren. Damit kannst Du Python beispielsweise um Bibliotheken für Datenvisualisierung, Machine Learning, Webframeworks, Bildverarbeitung oder naturwissenschaftliches Rechnen erweitern. Gleichzeitig bedeutet dieses Ökosystem auch Verantwortung: Fremde Pakete müssen geprüft, aktuell gehalten und sicher verwendet werden.
Python als Sprache des Lernens und Forschens
Python wird häufig in Schule, Ausbildung und Studium eingesetzt, weil die Sprache den Blick auf das eigentliche Problem erleichtert. Bei vielen anderen Sprachen müssen Einsteigerinnen und Einsteiger früh komplexe syntaktische Details beherrschen. In Python können einfache Aufgaben schneller umgesetzt werden. Das heißt nicht, dass Python immer einfach ist. Professionelle Python-Programme erfordern genauso sorgfältige Planung, Tests, Dokumentation und Wartung wie andere Software.
Gerade in Data Science und Künstliche Intelligenz ist Python besonders präsent. Bibliotheken wie NumPy, pandas, Matplotlib, scikit-learn, TensorFlow oder PyTorch machen Python zu einem wichtigen Werkzeug für Datenanalyse, Statistik, Visualisierung und maschinelles Lernen. In der wissenschaftlichen Programmierung wird Python oft als verständliche Steuer- und Auswertungssprache genutzt, während rechenintensive Teile teilweise in Sprachen wie C, C++ oder Fortran implementiert sind.

Geschichte von Python
Python wurde von Guido van Rossum am Centrum Wiskunde & Informatica in den Niederlanden entwickelt. Die Arbeit begann Ende der 1980er Jahre; die erste öffentliche Version erschien 1991.<ref>CWI: 25 Years of Python at CWI, abgerufen am 14. Juni 2026.</ref> Der Name der Sprache bezieht sich nicht auf die Schlangengattung, sondern auf die britische Komikergruppe Monty Python. Trotzdem ist die Schlange als Bild mit Python verbunden, was man auch am Logo und an manchen Projektnamen erkennt.

Die Entwicklung von Python ist ein gutes Beispiel für offene Softwareentwicklung. Viele Menschen aus der weltweiten Community tragen Ideen, Fehlerkorrekturen, Dokumentation und Pakete bei. Die Python Software Foundation unterstützt die Sprache organisatorisch. Python-Versionen erscheinen in einem regelmäßigen Entwicklungsprozess. Als aktueller Stand dieses aiMOOCs gilt: Am 14. Juni 2026 wird auf python.org Python 3.14.6 als aktuelle Downloadversion angeboten.<ref>Python.org: Download Python, abgerufen am 14. Juni 2026.</ref> Für Lernende ist wichtig: Du solltest moderne Python-3-Versionen verwenden. Python 2 ist veraltet und sollte für neue Projekte nicht mehr genutzt werden.
Python 2 und Python 3
Ein wichtiger Einschnitt war die Veröffentlichung von Python 3 im Jahr 2008. Python 3 beseitigte einige Altlasten, war aber nicht vollständig rückwärtskompatibel zu Python 2. Deshalb existierten beide Versionen lange parallel. Heute ist Python 3 der Standard. Wenn Du im Internet ältere Beispiele findest, solltest Du prüfen, ob sie wirklich zu Deiner Python-Version passen. Besonders bei der Ausgabe mit print, bei Textkodierung und bei manchen Bibliotheken können alte Beispiele zu Verwirrung führen.
Installation und Arbeitsumgebung
Um Python zu nutzen, brauchst Du einen Interpreter und meistens einen Texteditor oder eine Integrierte Entwicklungsumgebung. Für den Einstieg reichen einfache Werkzeuge. Du kannst Python von python.org installieren, in einer schulischen Lernplattform verwenden oder direkt in einer Online-Umgebung ausprobieren. In professionellen Projekten nutzt man häufig eine virtuelle Umgebung, damit Pakete für verschiedene Projekte getrennt bleiben.
{{#ev:youtube| https://www.youtube.com/watch?v=e6vPt_e9sRw |500|center}}
Typische Arbeitsweisen
Es gibt verschiedene Wege, mit Python zu arbeiten. In der REPL kannst Du einzelne Befehle ausprobieren. In einer Datei mit der Endung .py speicherst Du ein vollständiges Programm. In einem Jupyter Notebook kombinierst Du Code, Text, Formeln und Grafiken, was besonders in Datenanalyse und Unterricht nützlich ist. Für größere Projekte werden meist Editoren wie Visual Studio Code, PyCharm oder andere Entwicklungsumgebungen eingesetzt.
- REPL: Du testest kurze Ausdrücke sofort und siehst direkt das Ergebnis.
- Python-Datei: Du speicherst ein Programm dauerhaft in einer Datei mit der Endung
.py. - Jupyter Notebook: Du verbindest Code, Erklärung, Tabellen und Diagramme.
- Virtuelle Umgebung: Du trennst Pakete und Versionen projektweise.
- Versionsverwaltung: Du nutzt zum Beispiel Git, um Änderungen nachvollziehbar zu speichern.
Grundbegriffe der Programmierung mit Python
Anweisungen, Ausdrücke und Kommentare
Eine Anweisung ist ein Schritt, den das Programm ausführt. Ein Ausdruck erzeugt einen Wert, zum Beispiel 3 + 4 oder name.upper(). Ein Kommentar beginnt in Python mit dem Zeichen # und wird vom Interpreter ignoriert. Kommentare sollen nicht offensichtlichen Code wiederholen, sondern erklären, warum etwas geschieht oder welche Idee hinter einem Abschnitt steht.
<syntaxhighlight lang="python">
- Preisberechnung mit Mehrwertsteuer
netto = 20.00 mehrwertsteuer = 0.19 brutto = netto * (1 + mehrwertsteuer)
print(brutto) </syntaxhighlight>
Dieses Programm nutzt Variablen, eine Gleitkommazahl und eine mathematische Berechnung. Die Namen sind sprechend gewählt. Dadurch ist leichter zu erkennen, was gemeint ist. Gute Programme sind nicht nur für Maschinen, sondern auch für Menschen lesbar.
Variablen und Zuweisung
Eine Variable ist ein Name, der auf einen Wert verweist. In Python musst Du den Datentyp nicht ausdrücklich vor die Variable schreiben. Der Typ ergibt sich zur Laufzeit aus dem Wert. Das nennt man dynamische Typisierung. Python ist gleichzeitig stark typisiert: Ein Text und eine Zahl werden nicht automatisch beliebig miteinander vermischt.
<syntaxhighlight lang="python"> alter = 15 name = "Mina" ist_angemeldet = True
print(name) print(alter) print(ist_angemeldet) </syntaxhighlight>
Die Variable alter verweist auf eine Ganzzahl, name auf eine Zeichenkette und ist_angemeldet auf einen booleschen Wert. In Python werden Variablennamen häufig in snake_case geschrieben, also mit Kleinbuchstaben und Unterstrichen: punkte_gesamt, maximale_anzahl, ist_fertig.
Datentypen
Datentypen beschreiben, welche Art von Werten verarbeitet wird und welche Operationen sinnvoll sind. Python besitzt viele eingebaute Datentypen. Besonders wichtig sind Zahlen, Texte, Wahrheitswerte und Sammlungen.
| Datentyp | Beispiel | Bedeutung |
|---|---|---|
| Ganzzahl | 42
|
Ganze Zahlen ohne Nachkommastellen |
| Gleitkommazahl | 3.14
|
Zahlen mit Dezimalanteil |
| Zeichenkette | "Hallo"
|
Textdaten |
| Boolescher Wert | True
|
Wahr oder falsch |
| Liste | [1, 2, 3]
|
Veränderbare geordnete Sammlung |
| Tupel | (1, 2)
|
Unveränderbare geordnete Sammlung |
| Dictionary | {"name": "Ada"}
|
Zuordnung von Schlüsseln zu Werten |
| Menge | {1, 2, 3}
|
Sammlung eindeutiger Elemente |
Python kann mit diesen Datentypen flexibel umgehen. Trotzdem solltest Du immer überlegen, welcher Datentyp zum Problem passt. Eine Liste eignet sich zum Beispiel für eine Reihenfolge von Messwerten. Ein Dictionary eignet sich, wenn Du Informationen über Schlüssel abrufen willst, etwa person["name"].
Eingabe und Ausgabe
Viele Programme benötigen eine Eingabe und erzeugen eine Ausgabe. In einfachen Konsolenprogrammen nutzt Du input, um Text einzulesen, und print, um etwas auszugeben. Wichtig ist: input liefert immer eine Zeichenkette. Wenn Du eine Zahl brauchst, musst Du sie umwandeln.
<syntaxhighlight lang="python"> name = input("Wie heißt Du? ") alter_text = input("Wie alt bist Du? ") alter = int(alter_text)
print("Hallo, " + name + "!") print("In einem Jahr bist Du", alter + 1, "Jahre alt.") </syntaxhighlight>
Die Funktion int wandelt einen Text in eine Ganzzahl um, sofern der Text tatsächlich eine passende Zahl enthält. Wenn jemand statt einer Zahl ein Wort eingibt, entsteht ein Programmhinweis. Solche Fälle lernst Du später mit Fehlerbehandlung zu berücksichtigen.
Kontrollstrukturen
Kontrollstrukturen bestimmen, welche Anweisungen ausgeführt werden und wie oft sie ausgeführt werden. Ohne Kontrollstrukturen würde ein Programm nur von oben nach unten laufen. Mit Bedingungen und Schleifen kann ein Programm Entscheidungen treffen und wiederholt arbeiten.
Bedingungen mit if, elif und else
Mit if prüfst Du eine Bedingung. Wenn sie wahr ist, wird der eingerückte Block ausgeführt. Mit elif kannst Du weitere Fälle prüfen. Mit else legst Du fest, was in allen übrigen Fällen passiert.
<syntaxhighlight lang="python"> temperatur = 28
if temperatur >= 30:
print("Es ist sehr heiß.")
elif temperatur >= 20:
print("Es ist warm.")
else:
print("Es ist eher kühl.")
</syntaxhighlight>
Die Einrückung ist hier nicht nur schöner Stil, sondern Teil der Syntax. Alles, was zum if-Block gehört, muss gleichmäßig eingerückt sein. Dadurch ist in Python besonders gut sichtbar, welche Anweisungen zusammengehören.
Vergleichsoperatoren und logische Operatoren
Bedingungen nutzen häufig Vergleichsoperatoren wie ==, !=, <, >, <= und >=. Außerdem kannst Du Bedingungen mit and, or und not verbinden.
<syntaxhighlight lang="python"> alter = 16 hat_erlaubnis = True
if alter >= 16 and hat_erlaubnis:
print("Teilnahme erlaubt.")
else:
print("Teilnahme nicht erlaubt.")
</syntaxhighlight>
Achte besonders auf den Unterschied zwischen = und ==. Mit = weist Du einer Variable einen Wert zu. Mit == vergleichst Du zwei Werte. Dieser Unterschied ist eine häufige Fehlerquelle.
Schleifen mit for
Eine For-Schleife wird genutzt, wenn Du über eine Sammlung oder einen Zahlenbereich iterieren willst. Die Funktion range erzeugt eine Zahlenfolge.
<syntaxhighlight lang="python"> for zahl in range(1, 6):
print(zahl)
</syntaxhighlight>
Dieses Programm gibt die Zahlen 1 bis 5 aus. Die obere Grenze von range ist nicht enthalten. Das ist in Python üblich und begegnet Dir auch bei Indizes und Ausschnitten von Listen.
Schleifen mit while
Eine While-Schleife läuft, solange eine Bedingung wahr ist. Sie eignet sich, wenn nicht vorher feststeht, wie oft etwas wiederholt werden soll.
<syntaxhighlight lang="python"> geheimzahl = 7 tipp = 0
while tipp != geheimzahl:
tipp = int(input("Rate die Zahl: "))
print("Richtig geraten!") </syntaxhighlight>
Bei while-Schleifen musst Du darauf achten, dass die Bedingung irgendwann falsch wird. Sonst kann eine Schleife unbegrenzt weiterlaufen. Solche Schleifen können sinnvoll sein, zum Beispiel in Serverprogrammen, sind aber für Anfängerprojekte meist ungewollt.
Datenstrukturen in Python
Listen
Eine Liste speichert mehrere Werte in einer festen Reihenfolge. Listen sind veränderbar. Du kannst Elemente hinzufügen, entfernen oder verändern.
<syntaxhighlight lang="python"> noten = [2, 3, 1, 2] noten.append(1)
durchschnitt = sum(noten) / len(noten) print(durchschnitt) </syntaxhighlight>
Listen sind sehr nützlich, wenn Du Daten sammeln und verarbeiten möchtest. Mit append fügst Du ein Element hinzu. Mit len ermittelst Du die Länge. Mit sum addierst Du numerische Werte.
Dictionaries
Ein Dictionary ordnet Schlüsseln Werte zu. Dadurch kannst Du Daten mit Namen versehen und gezielt abrufen.
<syntaxhighlight lang="python"> person = {
"name": "Ada", "alter": 17, "kurs": "Informatik"
}
print(person["name"]) person["alter"] = 18 </syntaxhighlight>
Dictionaries sind besonders wichtig bei JSON, Web-APIs, Konfigurationsdaten und strukturierten Informationen. Sie helfen Dir, Daten nicht nur nach Position, sondern nach Bedeutung zu organisieren.
Tupel und Mengen
Ein Tupel ähnelt einer Liste, ist aber unveränderbar. Das ist sinnvoll, wenn Daten zusammengehören und nicht versehentlich verändert werden sollen. Eine Menge speichert eindeutige Werte ohne feste Reihenfolge.
<syntaxhighlight lang="python"> punkt = (10, 20) farben = {"rot", "grün", "blau", "rot"}
print(punkt) print(farben) </syntaxhighlight>
In der Menge farben kommt "rot" nur einmal vor, obwohl es zweimal angegeben wurde. Mengen eignen sich, wenn Du Duplikate entfernen oder Schnittmengen, Vereinigungen und Unterschiede berechnen möchtest.
Funktionen
Eine Funktion bündelt eine Teilaufgabe unter einem Namen. Funktionen machen Programme übersichtlicher, wiederverwendbarer und testbarer. Eine Funktion kann Parameter erhalten und mit return einen Wert zurückgeben.
<syntaxhighlight lang="python"> def berechne_brutto(netto, steuersatz):
brutto = netto * (1 + steuersatz) return brutto
preis = berechne_brutto(20.00, 0.19) print(preis) </syntaxhighlight>
Die Funktion berechne_brutto beschreibt eine klare Aufgabe. Sie verändert keine globalen Daten, sondern erhält Eingaben und liefert ein Ergebnis. Das ist ein guter Stil, weil die Funktion leichter zu verstehen und zu testen ist.
Warum Funktionen wichtig sind
Ohne Funktionen werden Programme schnell unübersichtlich. Wenn derselbe Code an mehreren Stellen kopiert wird, entstehen leicht Fehler. Funktionen helfen Dir, Abstraktion zu nutzen: Du gibst einer Idee einen Namen und musst nicht jedes Detail an jeder Stelle neu schreiben. Gute Funktionsnamen sind wie kleine Erklärungen: berechne_durchschnitt, lade_datei, ist_gueltige_email.
Lokale und globale Variablen
Variablen innerhalb einer Funktion sind meist lokal. Sie existieren nur während des Funktionsaufrufs. Das schützt Programme vor unbeabsichtigten Wechselwirkungen.
<syntaxhighlight lang="python"> def begruessung(name):
text = "Hallo, " + name return text
ausgabe = begruessung("Sam") print(ausgabe) </syntaxhighlight>
Die Variable text ist innerhalb der Funktion definiert. Außerhalb der Funktion ist sie nicht direkt verfügbar. Diese Trennung ist wichtig, damit größere Programme beherrschbar bleiben.
Module, Pakete und Bibliotheken
Ein Modul ist eine Python-Datei, deren Funktionen, Klassen oder Variablen in anderen Programmen genutzt werden können. Ein Paket bündelt mehrere Module. Mit import bindest Du vorhandene Werkzeuge ein.
<syntaxhighlight lang="python"> import math
radius = 5 flaeche = math.pi * radius ** 2 print(flaeche) </syntaxhighlight>
Das Modul math gehört zur Standardbibliothek. Es enthält mathematische Funktionen und Konstanten. Durch Module musst Du nicht alles selbst programmieren. Gleichzeitig solltest Du verstehen, was importierter Code ungefähr tut.
Pakete installieren
Zusätzliche Pakete werden häufig mit pip installiert. In professionellen Projekten ist es üblich, eine virtuelle Umgebung zu nutzen und Abhängigkeiten zu dokumentieren. So bleibt nachvollziehbar, welche Versionen verwendet wurden.
<syntaxhighlight lang="text"> python -m venv .venv python -m pip install requests </syntaxhighlight>
Der Python Package Index ist das zentrale Repository für viele Python-Pakete. Er hilft dabei, Pakete zu finden, zu installieren und zu veröffentlichen.<ref>PyPI: The Python Package Index, abgerufen am 14. Juni 2026.</ref> Für die Sicherheit ist wichtig, nur Pakete aus vertrauenswürdigen Quellen zu installieren, Versionen zu prüfen und keine unbekannten Befehle blind auszuführen.
Programmprobleme, Debugging und Tests
Probleme gehören zum Programmieren. Ein guter Umgang damit ist ein Zeichen von Kompetenz. Es gibt Probleme in der Schreibweise, Probleme während der Ausführung und Probleme in der Programmlogik. Besonders tückisch sind Programme, die laufen, aber falsche Ergebnisse liefern.
Hinweise des Interpreters lesen
Wenn Python ein Programm nicht ausführen kann, zeigt der Interpreter meist einen Bericht mit Zeilennummer und Ursache. Lies diese Hinweise sorgfältig: Unten steht oft der wichtigste Grund, darüber der Weg dorthin.
<syntaxhighlight lang="python"> zahl_text = "abc" zahl = int(zahl_text) </syntaxhighlight>
Dieses Beispiel kann nicht sinnvoll in eine Ganzzahl umgewandelt werden. Der Hinweis des Interpreters ist kein Gegner, sondern eine Spur. Er sagt Dir, was Python an welcher Stelle nicht ausführen konnte.
Eingaben prüfen
Benutzereingaben, Dateien und Netzwerkdaten sind nie automatisch zuverlässig. Deshalb ist es sinnvoll, Eingaben vor der Verarbeitung zu prüfen.
<syntaxhighlight lang="python"> eingabe = input("Gib eine ganze Zahl ein: ")
if eingabe.isdigit():
zahl = int(eingabe)
print("Das Doppelte ist", zahl * 2)
else:
print("Bitte gib nur Ziffern ein.")
</syntaxhighlight>
Diese Prüfung verhindert, dass ein ungeeigneter Text direkt als Zahl verarbeitet wird. In größeren Projekten werden solche Prüfungen noch sorgfältiger gestaltet.
Tests schreiben
Tests prüfen, ob ein Programm erwartete Ergebnisse liefert. Schon einfache Tests helfen, Probleme früh zu finden. In Python gibt es dafür Werkzeuge in der Standardbibliothek und zusätzliche Testbibliotheken.
<syntaxhighlight lang="python"> def quadrat(x):
return x * x
print(quadrat(4) == 16) print(quadrat(-3) == 9) </syntaxhighlight>
Die Ausgaben sollten jeweils True sein. Für größere Projekte sollten Tests systematischer aufgebaut werden. Trotzdem zeigen diese Beispiele die Grundidee: Ein Programm sollte nicht nur geschrieben, sondern überprüft werden.
Objektorientierte Programmierung
Objektorientierte Programmierung organisiert Programme mit Klassen und Objekten. Eine Klasse beschreibt, welche Daten und Methoden ein Objekt besitzt. Ein Objekt ist eine konkrete Ausprägung dieser Klasse.
<syntaxhighlight lang="python"> class Roboter:
def __init__(self, name):
self.name = name
self.schritte = 0
def gehe(self, anzahl):
self.schritte += anzahl
def status(self):
return f"{self.name} ist {self.schritte} Schritte gegangen."
r = Roboter("Robo") r.gehe(5) print(r.status()) </syntaxhighlight>
Die Methode __init__ initialisiert ein neues Objekt. Das Schlüsselwort self verweist auf das aktuelle Objekt. Objektorientierung ist besonders nützlich, wenn Programme viele zusammengehörige Daten und Verhaltensweisen modellieren, zum Beispiel Spielfiguren, Fahrzeuge, Konten, Sensoren oder grafische Elemente.
Wann lohnt sich Objektorientierung?
Objektorientierung lohnt sich, wenn ein Problem natürliche Einheiten besitzt, die Zustand und Verhalten kombinieren. Für ein kleines Rechenprogramm reichen oft Funktionen. Für ein Spiel mit vielen Figuren kann eine Klasse sinnvoll sein. Gute Programmiererinnen und Programmierer wählen nicht automatisch das komplizierteste Konzept, sondern das passende Werkzeug.
Python in der Praxis
Python wird in sehr unterschiedlichen Bereichen eingesetzt. Manche Programme laufen nur wenige Zeilen lang auf einem privaten Rechner. Andere sind Teil großer Systeme, die Millionen Menschen nutzen. Die folgenden Beispiele zeigen typische Einsatzfelder.
Automatisierung
Mit Python lassen sich wiederkehrende Aufgaben automatisieren: Dateien umbenennen, Tabellen auswerten, Berichte erstellen, Ordner durchsuchen, Messdaten verarbeiten oder Webseiten abrufen. Automatisierung spart Zeit, kann aber auch Fehler vervielfachen. Deshalb solltest Du Programme zuerst mit Testdaten ausprobieren und wichtige Dateien sichern.
Datenanalyse und Visualisierung
In der Datenanalyse werden Daten gesammelt, bereinigt, untersucht und dargestellt. Python bietet viele Bibliotheken, um Tabellen einzulesen, statistische Kennzahlen zu berechnen und Diagramme zu erstellen. Dabei ist nicht nur der Code wichtig, sondern auch die Frage, ob Daten zuverlässig, vollständig, fair erhoben und sinnvoll interpretiert wurden.

Webentwicklung
Mit Webframeworks wie Django oder Flask können Webseiten und Webanwendungen entwickelt werden. Python übernimmt dabei zum Beispiel die Verarbeitung von Anfragen, den Zugriff auf Datenbanken und die Erstellung von HTML-Seiten oder JSON-Antworten. In Webprojekten sind Datenschutz, IT-Sicherheit, Barrierefreiheit und Wartbarkeit besonders wichtig.
Künstliche Intelligenz und maschinelles Lernen
Python spielt eine zentrale Rolle in vielen Machine-Learning-Projekten. Bibliotheken wie scikit-learn, PyTorch und TensorFlow stellen Werkzeuge bereit, um Modelle zu trainieren und Daten zu verarbeiten. Wichtig ist dabei: Python allein macht keine Anwendung intelligent. Entscheidend sind Problemverständnis, Datenqualität, Modellwahl, Evaluation und verantwortlicher Einsatz. KI-Systeme können verzerrte Daten übernehmen und falsche Schlussfolgerungen nahelegen. Deshalb muss Programmieren immer mit kritischem Denken verbunden sein.
Guter Programmierstil
Guter Stil ist kein Luxus. Er macht Programme verständlich, wartbar und weniger fehleranfällig. In Python ist der Styleguide PEP 8 besonders bekannt. Er empfiehlt unter anderem gut lesbare Namen, passende Leerzeichen, übersichtliche Zeilenlängen und klare Struktur. Für Lernende sind zunächst drei Regeln besonders wichtig: Schreibe sprechende Namen, zerlege große Aufgaben in kleine Funktionen und teste Dein Programm regelmäßig.
Lesbarkeit vor Trickreichtum
Ein Programm ist nicht automatisch besser, weil es möglichst kurz ist. Kurzer Code kann elegant sein, aber auch unverständlich. Besonders im Unterricht und in Teamprojekten gilt: Andere sollen nachvollziehen können, was Dein Code tut. Das gilt auch für Dich selbst, wenn Du ein Programm nach einigen Wochen erneut öffnest.
<syntaxhighlight lang="python">
- Weniger gut lesbar
x = [n*n for n in range(10) if n % 2 == 0]
- Gut, wenn die Absicht erklärt wird
quadrate_gerader_zahlen = [zahl * zahl for zahl in range(10) if zahl % 2 == 0] </syntaxhighlight>
Das zweite Beispiel ist länger, aber die Absicht ist klarer. Gute Namen sind eine Form von Dokumentation.
Sicherheit und Verantwortung
Python-Projekte können mit persönlichen Daten, Netzwerken, Dateien und fremden Paketen arbeiten. Deshalb gehört IT-Sicherheit von Anfang an dazu. Installiere keine unbekannten Pakete, speichere keine Passwörter direkt im Code, prüfe Eingaben und denke über Datenschutz nach. Besonders bei Programmen, die Daten anderer Menschen verarbeiten, brauchst Du eine klare Begründung, Schutzmaßnahmen und transparente Kommunikation.
Schritt-für-Schritt-Projekt: Zahlenanalyse
In diesem Mini-Projekt schreibst Du ein Programm, das eine Liste von Zahlen analysiert. Es berechnet Minimum, Maximum und Durchschnitt. Dieses Projekt verbindet Listen, Funktionen und Ausgabe.
Projektidee
Du möchtest Messwerte auswerten, zum Beispiel Temperaturen, Punktzahlen oder Laufzeiten. Das Programm soll nicht nur ein einzelnes Ergebnis ausgeben, sondern mehrere Kennzahlen.
<syntaxhighlight lang="python"> def analysiere_zahlen(werte):
minimum = min(werte) maximum = max(werte) durchschnitt = sum(werte) / len(werte)
return {
"minimum": minimum,
"maximum": maximum,
"durchschnitt": durchschnitt
}
messwerte = [18.5, 20.0, 19.2, 21.1, 17.9] ergebnis = analysiere_zahlen(messwerte)
print("Minimum:", ergebnis["minimum"]) print("Maximum:", ergebnis["maximum"]) print("Durchschnitt:", ergebnis["durchschnitt"]) </syntaxhighlight>
Das Programm nutzt eine Funktion, eine Liste und ein Dictionary. Es ist bereits besser strukturiert als ein reines Skript, weil die Analyse in einer Funktion gebündelt ist.
Erweiterungen
Du kannst das Projekt erweitern, indem Du Benutzereingaben hinzufügst, Werte aus einer Datei liest, ungültige Eingaben abfängst oder ein Diagramm erstellst. Wichtig ist, jede Erweiterung einzeln zu testen. So erkennst Du schneller, an welcher Stelle ein Problem entsteht.
Häufige Anfängerprobleme
Viele Schwierigkeiten beim Lernen sind normal. Entscheidend ist, sie zu erkennen und daraus Strategien zu entwickeln. Besonders häufig sind falsche Einrückung, Verwechslung von = und ==, fehlende Umwandlung von Eingaben, unklare Variablennamen und zu große Codeblöcke ohne Funktionen.
- Einrückung: Blöcke müssen einheitlich eingerückt sein.
- Zuweisung:
=weist zu,==vergleicht. - Typumwandlung: Eingaben mit
inputsind zunächst Texte. - Namensgebung: Gute Namen erklären die Bedeutung.
- Debugging: Systematische Prüfung liefert wertvolle Hinweise.
Zusammenfassung
Python ist eine gut lesbare, vielseitige und mächtige Programmiersprache. Sie eignet sich für den Einstieg, bleibt aber auch für professionelle Anwendungen relevant. Du hast gesehen, wie Variablen, Datentypen, Bedingungen, Schleifen, Funktionen, Module, Fehlerbehandlung und Klassen zusammenwirken. Außerdem hast Du gelernt, dass Programmieren mehr ist als Syntax: Es geht um Problemlösen, Struktur, Tests, Sicherheit, Verantwortung und verständliche Kommunikation.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Wofür steht Python im Kontext dieses aiMOOCs? (Eine Programmiersprache) (!Eine Tabellenkalkulation) (!Ein Betriebssystem) (!Ein Webbrowser)
Wer gilt als Entwickler von Python? (Guido van Rossum) (!Linus Torvalds) (!Tim Berners-Lee) (!Ada Lovelace)
Welche Besonderheit nutzt Python zur Strukturierung von Codeblöcken? (Einrückung) (!Semikolonpflicht) (!Geschweifte Klammern als Pflicht) (!Römische Zahlen)
Welche Funktion gibt Text oder Werte auf der Konsole aus? (print) (!input) (!range) (!append)
Welcher Datentyp speichert geordnete veränderbare Sammlungen? (Liste) (!Tupel) (!Menge) (!Boolescher Wert)
Was bewirkt eine if-Anweisung? (Sie prüft eine Bedingung und führt abhängig davon Code aus) (!Sie installiert automatisch Pakete) (!Sie beendet immer das Programm) (!Sie wandelt jeden Text in eine Zahl um)
Wozu dienen Funktionen in Python besonders? (Sie bündeln wiederverwendbare Teilaufgaben) (!Sie ersetzen jede Variable) (!Sie verhindern alle Schwierigkeiten automatisch) (!Sie löschen installierte Pakete)
Wie wird ein Modul typischerweise eingebunden? (import) (!repeat) (!include) (!connect)
Was liefert input in Python zunächst zurück? (Eine Zeichenkette) (!Immer eine Ganzzahl) (!Immer eine Liste) (!Immer einen Wahrheitswert)
Was ist PyPI? (Ein Repository für Python-Pakete) (!Ein Python-Schlüsselwort) (!Ein Grafikformat) (!Ein Betriebssystemkern)
Memory
| Variable | benannter Verweis auf einen Wert |
| Liste | geordnete veränderbare Sammlung |
| Dictionary | Zuordnung von Schlüsseln zu Werten |
| Funktion | wiederverwendbarer Programmbaustein |
| Modul | Python-Datei zum Importieren |
| Schleife | wiederholte Ausführung von Code |
| Bedingung | Entscheidung im Programmablauf |
| Interpreter | führt Python-Code aus |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Variable | speichert oder verweist auf einen Wert |
| Bedingung | entscheidet über einen Programmzweig |
| Schleife | wiederholt Anweisungen |
| Funktion | bündelt eine Teilaufgabe |
| Modul | stellt wiederverwendbaren Code bereit |
...
Kreuzworträtsel
| Rossum | Wer entwickelte Python mit dem Vornamen Guido? |
| Einrueckung | Was strukturiert in Python Codeblöcke? |
| Liste | Welche Datenstruktur speichert mehrere Werte geordnet und veränderbar? |
| Funktion | Welcher Programmbaustein bündelt eine wiederverwendbare Teilaufgabe? |
| Modul | Wie heißt eine importierbare Python-Datei? |
| Testen | Was prüft, ob ein Programm erwartete Ergebnisse liefert? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Python-Steckbrief: Erstelle einen einseitigen Steckbrief zu Python mit Ursprung, Einsatzgebieten, typischen Dateiendungen, Stärken und Grenzen.
- Erstes Programm: Schreibe ein Programm, das Deinen Namen, Dein Lieblingsfach und ein selbst gewähltes Lernziel ausgibt.
- Variablen-Experiment: Lege Variablen für Alter, Lieblingszahl und Wohnort an und gib daraus sinnvolle Sätze aus.
- Programmuntersuchung: Sammle drei typische Anfängerprobleme aus Python-Beispielen und erkläre jeweils, wie man sie erkennt und behebt.
Standard
- Zahlenanalyse: Schreibe ein Programm, das fünf Zahlen einliest und Minimum, Maximum sowie Durchschnitt berechnet.
- Quizprogramm: Entwickle ein kleines Konsolenquiz mit mindestens fünf Fragen, Punktestand und Rückmeldung.
- Textauswertung: Schreibe ein Programm, das einen eingegebenen Satz analysiert und Anzahl der Zeichen, Wörter und Vokale ausgibt.
- Bibliotheksrecherche: Recherchiere eine Python-Bibliothek aus einem Bereich Deiner Wahl und erkläre Zweck, Beispielanwendung und mögliche Risiken.
Schwer
- Projektplanung: Entwirf ein Python-Projekt, das ein reales Problem aus Schule, Alltag oder Verein löst, und dokumentiere Ziel, Eingaben, Verarbeitung und Ausgabe.
- Datenvisualisierung: Erstelle mit Python ein Diagramm aus selbst erhobenen oder frei verfügbaren Daten und interpretiere die Darstellung kritisch.
- Objektmodell: Modelliere ein kleines System mit mindestens zwei Klassen, zum Beispiel eine Bibliothek, ein Haustierheim oder ein Spiel.
- Code-Review: Tausche ein Programm mit einer anderen Person, prüfe Lesbarkeit, Struktur, Eingabeprüfung und Tests und formuliere konstruktives Feedback.

| <inputbox>
type=create break=no preload=CHAT GPT TEXT HIER EINFÜGEN default= width=30 placeholder= Dein MOOC Titel buttonlabel=MOOC erstellen </inputbox> |

Lernkontrolle
- Algorithmisches Denken: Beschreibe ein Alltagsproblem als Algorithmus und entscheide, welche Python-Strukturen dafür geeignet wären. Begründe Deine Auswahl.
- Codeverständnis: Erkläre anhand eines unbekannten kurzen Python-Programms, welche Eingaben verarbeitet werden, welche Zwischenschritte stattfinden und welche Ausgabe entsteht.
- Programmanalyse: Du erhältst ein Programm mit mehreren Schwierigkeiten. Ordne sie in Schreibweise, Ausführung und Logik ein und entwickle eine Strategie zur Verbesserung.
- Datenmodellierung: Vergleiche Liste, Tupel, Menge und Dictionary an einem eigenen Beispiel und entscheide, welche Datenstruktur für welche Aufgabe am besten passt.
- Projektbewertung: Beurteile ein Python-Projekt nicht nur nach Funktion, sondern auch nach Lesbarkeit, Testbarkeit, Sicherheit und verantwortlichem Umgang mit Daten.
- Transferaufgabe: Entwickle eine Idee, wie Python in einem anderen Fach eingesetzt werden könnte, etwa in Mathematik, Biologie, Geografie, Musik oder Politik, und skizziere eine Umsetzung.
Lernnachweis
Für einen Lernnachweis erstellst Du ein kleines Python-Projekt mit Dokumentation. Dein Projekt soll ein klares Problem lösen, sinnvoll strukturierte Funktionen enthalten, Eingaben prüfen und mindestens drei Tests oder Testfälle dokumentieren. Zusätzlich schreibst Du eine Reflexion: Was hat funktioniert, welche Schwierigkeiten sind aufgetreten, wie hast Du sie gelöst und was würdest Du bei einer zweiten Version verbessern?
- Produkt: Gib den Python-Code als Datei oder Text ab.
- Dokumentation: Erkläre Ziel, Nutzung, Aufbau und wichtige Funktionen.
- Testfälle: Zeige mindestens drei Eingaben mit erwarteten und tatsächlichen Ergebnissen.
- Reflexion: Beschreibe Lernfortschritt, Schwierigkeiten und Verbesserungsmöglichkeiten.
- Verantwortung: Prüfe, ob Dein Projekt Daten sicher und fair verarbeitet.
OERs zum Thema
Quellen und weiterführende Hinweise
<references />
- Python-Dokumentation: Die offizielle Dokumentation erklärt Installation, Tutorial, Sprachreferenz und Standardbibliothek.
- Python Package Index: PyPI ist die zentrale Anlaufstelle für viele zusätzliche Python-Pakete.
- Wikimedia Commons: Freie Medien wie Logo, Porträt und Screenshots unterstützen das Verständnis des Themas.
- PEP 8: Der bekannte Styleguide gibt Empfehlungen für gut lesbaren Python-Code.
Links
aiMOOC-Projekte
Schulfach+


aiMOOCs



aiMOOC Projekte


THE MONKEY DANCE





{{#ev:youtube | https://youtu.be/rFhZlg38Zf8?si=9KdMNZYRkRD81YTo%7C 500 | center}}
|
{{#ev:youtube | https://youtu.be/Ob7etf9QuBo?si=t_NBA71bWg3Rq3LI%7C 500 | center}}
| <inputbox>
type=create break=no preload=MOOCit Vorlage default= width=30 placeholder= Dein MOOC Titel buttonlabel=MOOC erstellen </inputbox> |