At My Fingertips

Documentation

Selektion

Loading...
# Eingabe
alter = 15
erlaubnis = rectangle(1, 1, transparent)
text = ""

# Verarbeitung
if alter > 17:
    erlaubnis = ja
    text = "Sie dürfen jetzt Auto fahren."
else:
    erlaubnis = nein
    text = "Du darfst noch nicht Auto fahren."

# Ausgabe
show_graphic(erlaubnis)
print(text)

Überprüfen Sie:

Loading...

Theorie

In der Programmierung bezeichnet Selektion eine Entscheidung oder Verzweigung im Programmablauf, bei der basierend auf einer Bedingung unterschiedliche Anweisungen ausgeführt werden. Dies wird häufig mit if, elif und else-Anweisungen implementiert.

  • if: Überprüft, ob die Bedingung alter >= 18 wahr ist. Wenn ja, wird der Block unter if ausgeführt.
  • elif: Wenn die erste Bedingung nicht wahr ist, wird elif überprüft (in diesem Fall x == 5). Wenn diese wahr ist, wird dieser Block ausgeführt.
  • else: Wenn keine der vorherigen Bedingungen wahr ist, wird der Block unter else ausgeführt. Bei else muss keine Bedingung mehr überprüft werden.

Die Selektion erlaubt es, den Programmablauf dynamisch an bestimmte Bedingungen anzupassen.

Selektionsblöcke müssen immer mindestens eine if-Anweisung enthalten, maximal eine else-Anweisung und *irgendeine Anzahl von elif-Anweisungen. Folgendes sind also erlaubte Abläufe:

if:if-else:if-elif-else:
ifif-elseif-elif-else
if-elif-...-elif-else:
if-elifs-else
Loading...
Musterlösung
if 40 <= punkte:
    bestanden = ja
else: 
    bestanden = nein

Vergleichsoperatoren

Hier sind die wichtigsten Vergleichsoperatoren in Python:

  • Gleichheit: == und !=
  • Grössenvergleich: <, >, <= und >=
  • Mitgliedschaft: in und not in

Detaillierte Erklärung

  1. Gleichheit (==)

Überprüft, ob zwei Werte gleich sind.

2 == 2  # True
5 == 3  # False
  1. Ungleichheit (!=)

Überprüft, ob zwei Werte ungleich sind.

2 != 4  # True
2 != 2  # False
  1. Grösser als (>) und kleiner als (<)

Überprüft, welcher Wert grösser oder kleiner ist.

7 > 3  # True
3 > 7  # False

3 < 7  # True
7 < 3  # False
  1. Grösser oder gleich (>=) und kleiner oder gleich (<=)

Überprüft, ob der linke Wert grösser/ kleiner oder gleich dem rechten ist.

7 >= 7  # True
7 >= 3  # True
3 >= 7  # False

3 <= 7  # True
7 <= 7  # True
7 <= 3  # False
  1. Mitgliedschaft (in)

Überprüft, ob ein Element in einer Sequenz (wie Liste, Tuple oder String) vorhanden ist.

5 in [1, 2, 3, 4, 5]  # True
"a" in "abc"          # True
  1. Nicht-Mitgliedschaft (not in)

Überprüft, ob ein Element nicht in einer Sequenz enthalten ist.

6 not in [1, 2, 3, 4, 5]  # True
"d" not in "abc"          # True

Diese Operatoren sind essenziell für die Steuerung des Programmablaufs, insbesondere in bedingten Anweisungen und Schleifen.

Schreiben Sie ein Programm, das ...

  1. ... zwei Zahlen als Eingabe nimmt und die grössere von beiden ausgibt.
  2. ... ein Passwort überprüft. Das richtige Passwort lautet „python“. Wenn das Passwort korrekt ist, gib "Zugang gewährt" aus, andernfalls "Zugang verweigert".
  3. ... überprüft, ob eine eingegebene Zahl positiv oder negativ ist.
Loading...
Musterlösung 1
zahl1 = ...
zahl2 = ...

if zahl1 > zahl2:
    print(zahl1, "ist grösser.")
else:
    print(zahl2, "ist grösser.")
Loading...
Musterlösung 2
passwort = ...

if passwort == "python":
    print("Zugang gewährt.")
else:
    print("Zugang verweigert.")
Loading...
Musterlösung 3
zahl = 0

if zahl > 0:
    print("Die Zahl ist positiv.")
elif zahl < 0:
    print("Die Zahl ist positiv.")
else:
    print("0 ist eine neutrale oder nicht-negative Zahl.")

Theorie

In der letzten Aufgabe muss man neu noch elif verwenden, um den Spezialfall für die Null korrekt wiederzugeben. elif ist eine Abkürzung von else if.

Eine Selektion besteht aus

  • genau einem if-Block,
  • irgendeiner Anzahl von elif-Blöcken (0 bis unendlich) und
  • höchstens einem else-Block.

Beispiel: Dies ist ein Programm, das eine Punktzahl zwischen 0 und 100 nimmt und dann basierend auf der Punktzahl eine entsprechende Note (A, B, C, D oder Fail) ausgibt. Überprüfen Sie, weisen Sie punkte verschiedene Werte zu:

Loading...
  1. eine Temperatur in Celsius als Eingabe nimmt und sie in Fahrenheit umwandelt. Gib eine Warnung aus, wenn die Temperatur unter dem Gefrierpunkt (0°C) oder über dem Siedepunkt (100°C) liegt.
  2. eine Liste von Früchten und eine Frucht als Anfangswerte nimmt, um zu überprüfen, ob eine bestimmte Frucht in der Liste enthalten ist.
  3. zwei Zahlen und einen Operator (+, -, *, /) als Eingabe nimmt und die entsprechende Berechnung durchführt. Gib das Ergebnis oder eine Fehlermeldung für ungültige Operatoren aus.
Loading...
Musterlösung 1
celsius = 81
fahrenheit = (celsius * 9/5) + 32

print("Die Temperatur in Fahrenheit: ", fahrenheit, "°F")

if celsius < 0:
    print("Achtung: Es liegt unter dem Gefrierpunkt!")
elif celsius > 100:
    print("Achtung: Es liegt über dem Siedepunkt!")
else:
    print("Temperatur liegt zwischen dem Gefrier- und Siedepunkt.")
Loading...
Musterlösung 2
fruechte = ["Apfel", "Banane", "Orange", "Traube"]
frucht = "Kiwi"

if frucht in fruechte:
    print(frucht, "ist in der Liste enthalten.")
else:
    print(frucht, "ist nicht in der Liste.")
Loading...
Musterlösung 3
zahl1 = ...
zahl2 = ...
operator = ... # "+", "-", "*", "/"

if operator == "+":
    print("Ergebnis: ", zahl1 + zahl2)
elif operator == "-":
    print("Ergebnis: ", zahl1 - zahl2)
elif operator == "*":
    print("Ergebnis: ", zahl1 * zahl2)
elif operator == "/":
    if zahl2 != 0:
        print("Ergebnis: ", zahl1 / zahl2)
    else:
        print("Fehler: Division durch 0 ist nicht erlaubt.")
else:
    print("Ungültiger Operator.")

Was Sie geübt und gelernt haben

Lösungsstrategien

  • Sie können Probleme lösen, indem Sie sie in Teilprobleme zerlegen.

Python

  • Sie können Selektion (if, elif, else) sinnvoll verwenden.
  • Sie können verschiedene Vergleichsoperatoren (<, >, <=, >=, ==, !=, in, not in) sinnvoll verwenden.

PyTamaro

  • Sie können Grafiken mit Selektion verwenden.

This activity has been created by Gall and is licensed under CC BY-SA 4.0.

Selektion

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version 1cd5229 (Tue, 05 Nov 2024 16:55:57 GMT)