Mehrfachverzweigungen & Logische Operatoren

Der Schiri-Check

Fortschritt:
PHASE 1

Discovery & Checkpoint

Video & Einstieg
Verständnis-Check Beantworte die Frage zum Video

Gegeben ist folgender Code:

alter = 15
attest = True

if alter >= 18 or attest:
    print("Zulassung erteilt")
else:
    print("Abgelehnt")

Was wird auf der Konsole ausgegeben?

PHASE 2

Parsons Puzzle

Struktur & Logik
Aufgabe Bringe die Bausteine per Drag & Drop in Reihenfolge

Bringe die Kacheln in die richtige logische Reihenfolge, um ein Schiedsrichter-Prüfprogramm zu erstellen.
Der Kandidat erhält die Lizenz nur, wenn er mindestens 18 Jahre alt ist und die Regelprüfung bestanden hat.

Tipp: Benutze die Anfasser zum Verschieben und ⇥- / ⇥+ zum Einrücken.

Dein Programm (Lösung) Hier die Zeilen in die richtige Reihenfolge bringen
Aussortierte Bausteine (Distraktoren) Hierhin fehlerhafte / nicht benötigte Zeilen ziehen
PHASE 3

Scaffolding & Bugfix

Geführte Praxis
Aufgabe Finde und behebe die Fehler im Code

Für die Schiedsrichter-Lizenz gelten strenge Regeln: Man erhält die Lizenz nur, wenn man mindestens 80 Punkte erzielt hat und die Theorieprüfung bestanden ist.
Hat man zwar mindestens 50 Punkte erreicht, aber die Kriterien für die Lizenz nicht erfüllt, muss man in die Nachpruefung. Ansonsten ist man Durchgefallen.

Im vorgegebenen Code haben sich zwei typische Fehler eingeschlichen:
1. Logikfehler: Es wurde der Operator or statt and verwendet. Dadurch würde ein Kandidat fälschlicherweise die Lizenz erhalten, obwohl die Theorie nicht bestanden wurde (theorie_bestanden = False)!
2. Syntaxfehler: In der zweiten Bedingung fehlt das Schlüsselwort für die alternative Mehrfachverzweigung (elif).

Repariere beide Fehler, sodass bei den vorgegebenen Werten korrekterweise Urteil: Nachpruefung ausgegeben wird.

Tipp: Passe den Code im Editor an und klicke auf „Ausführen & Prüfen“.

script.py
Python 3.11
Konsole (Output)

                    

Musterlösung:
punkte = 80
theorie_bestanden = False

if punkte >= 80 and theorie_bestanden:
    print("Urteil: Lizenz erteilt")
elif punkte >= 50:
    print("Urteil: Nachpruefung")
else:
    print("Urteil: Durchgefallen")
PHASE 4

Coding Challenge

Eigenständiges Coden
Ziel-Aufgabe Löse die Aufgabe und bestehe alle Tests

Programmiere den digitalen Schiri-Assistenten für ein hitziges Match in der Sportart Fussball.
Ein Foulspiel soll anhand der verbleibenden Spielzeit und der Art des Vergehens bewertet werden.

1. Erstelle eine Variable restzeit mit dem Wert 10 (in Minuten).
2. Erstelle eine Variable taktisches_foul mit dem Wert False.
3. Entscheide mit einer if-elif-else-Kette über die Strafe:
   - Wenn restzeit <= 10 oder taktisches_foul == True ist:
     Gib Strafe: Zeitstrafe aus.
   - Wenn restzeit <= 30 ist (und keine Zeitstrafe ausgesprochen wurde):
     Gib Strafe: Verwarnung aus.
   - In allen anderen Fällen (else):
     Gib Strafe: Ermahnung aus.

Tipp: Schreibe deinen Code in den Editor und klicke auf „Code testen“.

solution.py
Python 3.11
Konsole (Output)

                    

Test-Suite

Musterlösung:
restzeit = 10
taktisches_foul = False

if restzeit <= 10 or taktisches_foul:
    print("Strafe: Zeitstrafe")
elif restzeit <= 30:
    print("Strafe: Verwarnung")
else:
    print("Strafe: Ermahnung")
PHASE 5

Der digitale Schiri-Assistent

Kreatives Sandbox-Labor
Freies Experimentieren Erweitere deinen Code nach deinen eigenen Ideen

Erweitere deinen Schiri-Assistenten um weitere Spielsituationen! Baue zusätzliche Faktoren ein wie wiederholtes_foul, reklamieren oder letzter_mann.
Nutze Verknüpfungen mit and, or und not, um zwischen Pfiff, Verwarnung, Zeitstrafe oder direktem Platzverweis zu entscheiden.

Tipp: Passe den Code an, führe ihn aus oder lade dein fertiges Programm als Python-Datei herunter.

programm.py
Python 3.11
Konsole (Output)

                    

Lektion vollständig abgeschlossen!

Du hast alle Phasen gemeistert und kannst hier im Sandbox-Labor frei weiterprogrammieren.

Zur Übersicht
Lektion beendet
>_

Benutzereingabe (input)

Dein Python-Programm wartet auf eine Eingabe

Tippe deine Eingabe ein und drücke Enter ↵ oder klicke auf Absenden.