Medien und Informatik verstehen

Programmieren mit Python

Richard Conrardy

11.11.2026

Kompetenzindikator

  • MI.2.2: Die Schülerinnen und Schüler können einfache Problemstellungen analysieren, mögliche Lösungsverfahren beschreiben und in Programmen umsetzen.
    • MI.2.2.g: können selbstentdeckte Lösungswege für einfache Probleme in Form von lauffähigen und korrekten Computerprogrammen mit Schleifen, bedingten Anweisungen und Parametern formulieren.
    • MI.2.2.h: können selbstentwickelte Algorithmen in Form von lauffähigen und korrekten Computerprogrammen mit Variablen und Unterprogrammen formulieren.
    • MI.2.2.i: können verschiedene Algorithmen zur Lösung desselben Problems vergleichen und beurteilen (z.B. lineare und binäre Suche, Sortierverfahren).

Variablen, Datentypen und Type Casting

Was sind Variablen?

Eine Variable ist ein Behälter, um Daten zu speichern.

name = "Christian"  # Variable erstellen und Wert zuweisen
print(name)         # Christian

name = 3            # Variable überschreiben
print(name)         # 3

name = input("Gib deinen Namen ein: ")
print("Dein Name ist: " + name)

Eine Variable sollte so benannt werden, dass klar ist, wofür sie verwendet wird.

Was sind Datentypen?

x = 5
print(type(x))      # int: ganze Zahl

x = 5.0
print(type(x))      # float: Kommazahl

x = True
print(type(x))      # bool: Wahrheitswert

x = "hello"
print(type(x))      # str: Zeichenkette

Konvertierung von Datentypen

Manchmal müssen Datentypen umgewandelt werden.

x = "Monat "
y = 12
print(x + str(y))   # Monat 12

Die wichtigsten Umwandlungsfunktionen sind int(), float(), bool() und str().

Auftrag: Mein erstes Programm

In Amerika ist die Längeneinheit Fuss (ft) verbreitet. 1 Fuss entspricht 30.48 cm.

Erstellen Sie ein Programm, welches Zentimeter in Fuss umrechnet. Wie gross sind Sie in Fuss?

Programmierer am Computer

Conditionals (if, elif, else) und Flussdiagramme

Was sind Conditionals?

Eine bedingte Anweisung führt Code nur aus, wenn eine Bedingung wahr ist.

note = 4.5

if note >= 4:
    print("Prüfung bestanden")
else:
    print("Prüfung nicht bestanden")

Alles innerhalb einer Bedingung ist eingerückt.

Mehrere Bedingungen

Mit elif können mehrere Fälle unterschieden werden.

if x > 1:
    print("x ist grösser als 1")
elif x < 1:
    print("x ist kleiner als 1")
else:
    print("x ist gleich 1")

Ein Gleichheitszeichen weist zu, zwei Gleichheitszeichen vergleichen:

a = 5
if a == 5:
    print("a ist gleich 5")

Auftrag: Login mit Passwort

  1. Programmieren Sie ein Login nur mit Passwort. Bei korrektem Passwort erscheint «Herzlich Willkommen», sonst «Passwort nicht korrekt».
  2. Erstellen Sie das Flussdiagramm dazu.

Computer mit Schloss als Symbol für ein Login

Auftrag: Login mit Benutzer und Passwort

  1. Ergänzen Sie das Login in einer neuen Python-Datei um einen Benutzernamen.
  2. Falls der Benutzer nicht existiert, soll «Benutzer nicht gefunden» erscheinen.
  3. Erstellen Sie das Flussdiagramm dazu.

Computer mit Schloss als Symbol für Benutzerkonto und Passwort

Loops (while, for) und Flussdiagramme

Was sind Loops?

Mit einer Schleife wird Programmcode wiederholt.

i = 0
while i < 5:
    print(i)
    i = i + 1
for i in range(0, 5):
    print(i)

Beide Programme geben 0 1 2 3 4 aus. In den meisten Fällen ist der for-Loop weniger fehleranfällig.

Unendliche Loops und break

i = 0
while True:
    print(i)
    if i == 100:
        break
    i = i + 1

Mit break kann eine Schleife verlassen werden. Eine versehentlich unendliche Schleife lässt sich im Terminal mit Ctrl-C abbrechen.

Auftrag: Wieder in der Primarschule

  1. Die Lehrerin möchte, dass Sie die Zahlen von 1 bis 1000 aufschreiben. Automatisieren Sie diesen Auftrag.
  2. Zählen Sie von 1000 rückwärts bis 1.
  3. Schreiben Sie die 7er-Reihe bis 1000 auf (1 × 7, 2 × 7, 3 × 7, …).

Lehrerin in einer Schule

Auftrag: Fahrplan Luzern–Engelberg

Der IR fährt einmal pro Stunde. Der erste Zug fährt um 06:12, der letzte um 20:12.

  1. Erstellen Sie ein Programm, das den Fahrplan ausgibt.
  2. Schreiben Sie das Programm nicht für jeden Zug einzeln.
  3. Erstellen Sie das Flussdiagramm dazu.

Person arbeitet konzentriert am Computer

Auftrag: Prüfungssoftware

Programmieren Sie eine Software, die eine Frage stellt. Nach drei Fehlversuchen soll «Prüfung leider nicht bestanden» erscheinen, inklusive der verbleibenden Versuche. Bei einer richtigen Antwort erscheint «Gratulation!».

Erstellen Sie auch das Flussdiagramm.

Studentin beim Lösen einer Prüfungsfrage

Listen

Was sind Listen?

Eine Liste speichert mehrere Elemente. Der erste Index ist 0.

einkaufsliste = ["Brot", "Nutella", "Milch"]

print(einkaufsliste[0])  # Brot
print(einkaufsliste[1])  # Nutella
print(len(einkaufsliste))

Listen lassen sich direkt durchlaufen:

for element in einkaufsliste:
    print(element)

Elemente können geändert, hinzugefügt und gelöscht werden:

einkaufsliste[1] = "Bananen"
einkaufsliste.append("Schokolade")
einkaufsliste.pop()

Algorithmen vergleichen

Gesucht wird die Zahl 73.

Vergleichen Sie zwei Suchverfahren:

  • Lineare Suche: Prüfen Sie die unsortierte Liste von vorne nach hinten.
  • Binäre Suche: Sortieren Sie die Liste zuerst und halbieren Sie den verbleibenden Suchbereich nach jedem Vergleich.
unsortiert = [12, 4, 73, 8, 21, 55, 90]
sortiert = [4, 8, 12, 21, 55, 73, 90]
  1. Wie viele Vergleiche braucht jedes Verfahren, um 73 zu finden?
  2. Welche Voraussetzung hat die binäre Suche?
  3. Wann ist welches Verfahren sinnvoller?
  4. Formulieren Sie den Unterschied in eigenen Worten.

Auftrag: Einkaufsliste

Programmieren Sie eine Einkaufsliste, bei der Artikel eingegeben werden können. Die Liste soll nach jeder Eingabe wieder ausgegeben werden.

Tipp: Mit while True wird der Ablauf wiederholt. Zum Beenden können Sie Ctrl-C verwenden.

Einkaufswagen als Symbol für eine Einkaufsliste

Auftrag: Notendurchschnittsrechner

Programmieren Sie einen Notendurchschnittsrechner. Die Benutzerin oder der Benutzer soll mehrere Noten eingeben können; der Rechner gibt den aktuellen Durchschnitt zurück.

Person mit Taschenrechner

Funktionen

Was sind Funktionen?

Funktionen strukturieren Code und können mehrfach aufgerufen werden.

def meine_funktion(x):
    return 2 * x

print(meine_funktion(2))
print(meine_funktion(4))

Funktionen können Argumente haben und einen Rückgabewert liefern.

def funktion_ohne_argument():
    print("hello")

def funktion_mit_argument(x):
    print(x)

funktion_ohne_argument()
funktion_mit_argument("world")

Rückgabewert

def doppelt(x):
    return 2 * x

wert = doppelt(5)
print(wert)  # 10

Parameter sind innerhalb der Funktion verfügbar. Mit return wird ein Ergebnis nach aussen zurückgegeben.

Auftrag: Brief adressieren

Erstellen Sie eine Funktion, welche eine korrekt formatierte Adresse ausgibt. Rufen Sie die Funktion mit mindestens zwei verschiedenen Adressen auf.

Die Funktion soll die Argumente vorname, name, strasse, strassennummer, plz und ort besitzen.

Brief und Postsendung

Auftrag: Uhrzeit-Addierer

Erstellen Sie eine Funktion, welche zu einer Uhrzeit beliebig viele Minuten addiert.

def uhrzeit_minuten_addieren(stunden, minuten, summand):
    # Ihr Code
    pass

uhrzeit_minuten_addieren(17, 32, 8)    # 17:40
uhrzeit_minuten_addieren(19, 7, 63)    # 20:10
uhrzeit_minuten_addieren(16, 10, 1111) # 10:41

Uhr als Symbol für Zeitberechnung

Rechtliches

Urheberrecht

Literatur