2.6. Abzweigungen#

Abzweigungen steuern den Funktionsfluss eines Skripts. In dieser Aufgabe wird der Umgang mit if-Abzweigungen vertieft.

Aufgabenteil A#

Schreiben Sie ein Skript, welches das Minimum bzw. Maximum zweier Variablen ausgibt. Benutzen Sie dafür die kennengelernte if-Abzweigung. Testen Sie die drei möglichen Fälle durch geeignete Beispiele.

Lösungshinweis#

So könnte beispielsweise die Ausgabe aussehen.

Gegeben sind die Werte a = 5 und b = 10
--> a ist kleiner als b

Lösungsvorschlag#

Hide code cell content
a = 5
b = 10

print("Gegeben sind die Werte a =", a, "und b =", b)
Gegeben sind die Werte a = 5 und b = 10
Hide code cell content
if a > b:
    print("--> a ist größer als b")
else: 
    if a < b:
        print("--> a ist kleiner als b")
    else:
        print("--> a ist gleich b")
--> a ist kleiner als b

Aufgabenteil B#

Schreiben Sie ein Skript, welches Elemente aus einer Liste in einem vorgegebenen Bereich filtert. Die Werte sollen auf zwei Listen aufgeteilt werden, eine, welche die Werte im gesuchten Bereich enthält, und eine für die außerhalb. Das Skript können Sie an folgender zufälligen Zahlenfolge mit Werten zwischen 0 und 100 testen.

86, 22, 45, 80, 11, 88, 20, 2, 34, 98, 92, 48, 74, 45, 67, 39, 82, 36, 65, 22, 24, 69, 44, 91, 78, 92, 10, 78, 77, 4

Lösungshinweis#

t1 = [86, 22, 45, 80, 11, 88, 20, 2, 34, 98, 
      92, 48, 74, 45, 67, 39, 82, 36, 65, 22, 
      24, 69, 44, 91, 78, 92, 10, 78, 77, 4]

Testfälle:

  • Für den Wertebereich 25 bis 65 sind folgende 8 Elemente 45, 34, 48, 45, 39, 36, 65 und 44 im gesuchten Bereich

  • Für den Wertebereich 10 bis 80 sind 21 Elemente im gesuchten Bereich

Eine Ausgabe könnte wie folgt aussehen.

Gegebene Liste:  [86, 22, 45, 80, 11, 88, 20, 2, 34, 98, 92, 48, 74, 45, 67, 39, 82, 36, 65, 22, 24, 69, 44, 91, 78, 92, 10, 78, 77, 4]
Untere Grenze:  25
Obere Grenze:  65
Liste innerhalb:  [45, 34, 48, 45, 39, 36, 65, 44]
Liste außerhalb:  [86, 22, 80, 11, 88, 20, 2, 98, 92, 74, 67, 82, 22, 24, 69, 91, 78, 92, 10, 78, 77, 4]
Anzahl der Werte innerhalb:  8

Lösungsvorschlag#

Hide code cell content
# Eingabeliste
werte = [86, 22, 45, 80, 11, 88, 20, 2, 34, 98, 92, 48, 74, 45, 67, 39, 82, 36, 65, 22, 24, 69, 44, 91, 78, 92, 10, 78, 77, 4]

# Filterschranken
unten = 25
oben = 65

# Listen, welche nach den Filterregeln gefüllt werden
innerhalb = []
ausserhalb = []

# Iteration über alle Listenelemente
for el in werte:
    if el >= unten and el <= oben:
        innerhalb.append(el)
    else:
        ausserhalb.append(el)

# Ausgabe
print("Gegebene Liste: ", werte)
print("Untere Grenze: ", unten)
print("Obere Grenze: ", oben)
print("Liste innerhalb: ", innerhalb)
print("Liste außerhalb: ", ausserhalb)
print("Anzahl der Werte innerhalb: ", len(innerhalb))
Gegebene Liste:  [86, 22, 45, 80, 11, 88, 20, 2, 34, 98, 92, 48, 74, 45, 67, 39, 82, 36, 65, 22, 24, 69, 44, 91, 78, 92, 10, 78, 77, 4]
Untere Grenze:  25
Obere Grenze:  65
Liste innerhalb:  [45, 34, 48, 45, 39, 36, 65, 44]
Liste außerhalb:  [86, 22, 80, 11, 88, 20, 2, 98, 92, 74, 67, 82, 22, 24, 69, 91, 78, 92, 10, 78, 77, 4]
Anzahl der Werte innerhalb:  8

Test