1. Unterrichtsblock

Python kennenlernen: Grundlagen und Syntax

Python ist eine gut lesbare und vielseitige Programmiersprache. Guido van Rossum veröffentlichte Python im Jahr 1991. In diesem Kurs schreiben wir Python-3-Programme, führen sie direkt aus und entwickeln Schritt für Schritt eigene Anwendungen.

Python kann unter Windows, macOS, Linux und auf Plattformen wie dem Raspberry Pi eingesetzt werden. Die Sprache wird wegen ihrer lesbaren Syntax, der großen Community und der vielen Bibliotheken verwendet.

EigenschaftBedeutung für die Entwicklung
gut lesbare SyntaxCode kann leichter gelesen und erklärt werden
viele Bibliothekenfertige Funktionen können gezielt eingebunden werden
plattformübergreifendProgramme können auf verschiedenen Betriebssystemen laufen
schnelle EntwicklungIdeen können mit wenig Grundcode ausprobiert werden
mehrere ParadigmenPython unterstützt prozedurale, objektorientierte und funktionale Ansätze

Wo wird Python eingesetzt?

EinsatzfeldWofür Python dort genutzt wird
WebentwicklungBackend-Logik, HTTP, APIs und Frameworks wie Flask oder Django
SpieleentwicklungSpielelogik und interaktive Anwendungen, zum Beispiel mit Pygame
Machine Learning und KIModelle trainieren, Daten verarbeiten und Vorhersagen berechnen
Datenwissenschaft und VisualisierungDaten auswerten und mit Matplotlib darstellen
Desktop-OberflächenGrafische Anwendungen, zum Beispiel mit Tkinter
Web ScrapingDaten aus Webseiten für erlaubte Zwecke auslesen und verarbeiten
GeschäftsanwendungenE-Commerce-, ERP- und Automatisierungslösungen entwickeln
Audio und VideoMedien verarbeiten und Anwendungen mit Medienausgabe bauen
CADKonstruktion und technische Arbeitsabläufe erweitern
Eingebettete SystemePython auf kleinen Computern, zum Beispiel Raspberry Pi, einsetzen

Die konkrete Eignung hängt von den Anforderungen ab. Geschwindigkeit, Speicherbedarf, Zielplattform und Entwicklungszeit müssen zur Aufgabe passen.

Interpreter und Compiler

Ein Programm liegt zuerst als Quelltext vor. Damit ein Computer die Anweisungen ausführen kann, muss dieser Quelltext durch ein Laufzeitsystem verarbeitet werden.

Beim Kompilieren wird der Quelltext vor der Ausführung in eine andere Form, oft in Maschinencode, übersetzt. Das kann schnell sein, benötigt aber meist einen eigenen Build-Schritt und oft eine eigene Version für verschiedene Zielplattformen.

Beim Interpretieren verarbeitet ein Interpreter den Quelltext oder einen Zwischencode zur Laufzeit. Das erleichtert kurze Tests und schnelle Änderungen. Dafür muss auf dem Zielsystem eine passende Laufzeitumgebung vorhanden sein.

Die Aussage „Python ist interpretiert“ ist für den Einstieg nützlich, aber technisch unvollständig: Eine typische Python-Implementierung erzeugt intern Bytecode, der von der Python-Laufzeitumgebung ausgeführt wird.

BegriffBedeutungBeispiel
KompilierenQuelltext wird vor der Ausführung in eine andere Form oder Maschinencode übersetzt.C++
InterpretierenEin Laufzeitsystem verarbeitet Quelltext oder Zwischencode bei der Ausführung.Python, JavaScript
BeidesEine Sprache kann zuerst Zwischencode erzeugen und ihn danach mit einer Laufzeitumgebung ausführen.Java, Python
AnsatzVorteileMögliche Nachteile
Kompilierenoft hohe Ausführungsgeschwindigkeit; Fehler können vor dem Start gefunden werdenBuild-Schritt und Zielplattform müssen berücksichtigt werden
Interpretierenschnelle Rückmeldung und leicht anpassbarpassende Laufzeitumgebung erforderlich
KombinationZwischencode kann mit einer flexiblen Laufzeit verbunden werdentechnischer Ablauf ist komplexer

Programmierparadigmen

Ein Paradigma beschreibt eine typische Art, Programme und Probleme zu strukturieren. Python kann mehrere Ansätze kombinieren.

ParadigmaLeitfragePython-Beispiel
prozeduralWelche Schritte werden nacheinander ausgeführt?Variablen, Bedingungen und Schleifen
objektorientiertWelche Objekte besitzen Daten und Verhalten?Klassen wie Person oder Konto
funktionalWelche Funktionen verarbeiten welche Werte?Funktionen, map() oder Lambda-Ausdrücke
# Prozedural: Schritte nacheinander
preis = 12
anzahl = 3
gesamt = preis * anzahl
print(gesamt)

Funktional: Werte durch Funktionen verarbeiten

Bei einem funktionalen Ansatz wird eine Aufgabe in eine Funktion ausgelagert. Die Funktion erhält Werte und gibt ein Ergebnis zurück.

def verdoppeln(zahl):
    return zahl * 2


ergebnis = verdoppeln(4)
print(ergebnis)

Die Funktion verdoppeln() erhält die Zahl 4 und gibt das Ergebnis 8 zurück. In späteren Blöcken lernen wir weitere funktionale Werkzeuge wie Lambda-Funktionen kennen.

Objektorientiert: Daten und Verhalten zusammenfassen

Bei der objektorientierten Programmierung werden Daten und passende Funktionen in einer Klasse gebündelt. Ein Objekt ist eine konkrete Ausprägung dieser Klasse.

class Person:
    def __init__(self, name):
        self.name = name

    def begruessen(self):
        print(f"Hallo, ich bin {self.name}.")


person = Person("Samira")
person.begruessen()

Die Klasse Person beschreibt Daten und Verhalten. Das Objekt person verwendet diesen Bauplan mit dem konkreten Namen Samira.

Funktional: Werte durch Funktionen verarbeiten

Bei einem funktionalen Ansatz wird eine Aufgabe in eine Funktion ausgelagert. Die Funktion erhält Werte und gibt ein Ergebnis zurück.

def verdoppeln(zahl):
    return zahl * 2


ergebnis = verdoppeln(4)
print(ergebnis)

Die Funktion verdoppeln() erhält die Zahl 4 und gibt das Ergebnis 8 zurück. In späteren Blöcken lernen wir weitere funktionale Werkzeuge wie Lambda-Funktionen kennen.

Das erste Python-Programm

Mit print() schreiben wir Text oder Werte in die Ausgabe. Text steht in Anführungszeichen.

print("Willkommen im Pythonkurs!")
print("Wir prüfen jede Idee direkt im Code.")

Speichere ein längeres Programm in einer Datei mit der Endung .py. Im Terminal kann sie so gestartet werden:

python hallo.py

Python auf Windows prüfen

Öffne PowerShell oder die Eingabeaufforderung und prüfe, ob Python erreichbar ist. Je nach Installation funktioniert auch der Befehl py.

python --version
py --version

Die Ausgabe zeigt die installierte Python-3-Version. Für diesen Kurs sollte der Interpreter in VS Code auf dieselbe Installation zeigen, die auch im Terminal verwendet wird.

Die interaktive Python-Shell

Für kurze Experimente kann Python ohne eine Datei gestartet werden. Nach dem Start erscheint die Eingabeaufforderung >>>.

python
>>> print("Hallo Welt!")
Hallo Welt!
>>> exit()

Die Shell eignet sich für kleine Tests. Für längere Programme speichern wir den Code in einer .py-Datei, damit er später wieder geöffnet und verbessert werden kann.

Einrückung ist Syntax

Python verwendet Einrückungen, um zusammengehörige Anweisungen zu kennzeichnen. Nach einer Bedingung steht ein Doppelpunkt. Die folgenden Zeilen des Blocks werden einheitlich eingerückt.

if 5 > 2:
    print("Die Bedingung ist wahr.")

Vier Leerzeichen pro Ebene sind üblich. Entscheidend ist, dass alle Zeilen desselben Blocks gleich eingerückt sind.

# Fehlerhaft
if 5 > 2:
print("Diese Zeile gehört zum if-Block.")

Ohne Einrückung entsteht ein IndentationError. Bei fehlenden Klammern oder Anführungszeichen kann ein SyntaxError entstehen.

Kommentare und Variablen

Kommentare beginnen mit # und werden nicht ausgeführt. Sie dokumentieren den Code für Menschen und können eine Zeile vorübergehend deaktivieren.

# Diese Zeile ist eine Notiz für Menschen.
name = "Samira"  # Kommentar am Zeilenende
# print("Diese Ausgabe ist vorübergehend ausgeschaltet.")
print(name)

Eine Variable entsteht, wenn ihr ein Wert zugewiesen wird. Mit Variablen arbeiten wir im nächsten Unterrichtsblock ausführlicher.

Aufgaben

1. Erstes Programm

Erstelle eine Datei hallo.py, gib Hallo Welt! aus und führe sie im Editor sowie im Terminal aus. Ändere den Text anschließend so, dass dein eigener Name erscheint.

2. Kommentare untersuchen

Erstelle ein Programm mit einem Kommentar vor einer Ausgabe, einem Kommentar am Zeilenende und einer auskommentierten print()-Zeile. Beobachte, welche Zeilen Python ausführt.

3. Einrückung testen

Führe das if-Beispiel aus. Entferne die Einrückung vor print(), starte den Code erneut und beschreibe die Fehlermeldung. Stelle den Code danach wieder her.

4. Persönliche Textkarte

Schreibe ein Programm, das deinen Namen, ein Interessengebiet und dein Ziel im Pythonkurs ausgibt. Verwende mindestens zwei Kommentare und eine einfache if-Anweisung.

print("Name: DEIN NAME")
print("Interesse: DEIN INTERESSE")
print("Mein Ziel: DEIN ZIEL")

# Diese Zeile beschreibt den folgenden Code.
if 5 > 2:
    print("Meine Textkarte funktioniert.")

5. Fachliche Fragen

  1. Was ist der Unterschied zwischen Quelltext und ausgeführtem Programm?
  2. Was passiert beim Kompilieren?
  3. Wie arbeitet ein Interpreter zur Laufzeit?
  4. Welche Vor- und Nachteile haben kompilierte und interpretierte Programme?
  5. Warum kann Python sowohl Interpreter als auch Zwischencode verwenden?
  6. Was unterscheidet prozedurale, objektorientierte und funktionale Programmierung?

Optionale Zusatzaufgaben

  • Schreibe drei zusätzliche Ausgaben für deine Textkarte.
  • Erstelle eine zweite if-Anweisung mit einer eigenen Bedingung.
  • Baue absichtlich einen Einrückungsfehler ein, erkläre die Fehlermeldung und korrigiere ihn.
  • Schreibe ein kleines Rechenprogramm mit zwei Zahlen und +, - und *.
  • Führe denselben Ausdruck in der Python-Shell und in einer .py-Datei aus.
  • Vergleiche Python, C++, Java und JavaScript in einer eigenen Tabelle.