Erklärung zur Lektion
Nach dieser Lektion kannst du:
any() erkennen, ob mindestens eine Bedingung wahr ist.all() verlangen, dass jede Bedingung wahr ist.any([]) == False und all([]) == True erklären und korrekt behandeln, wenn die Eingabe leer sein kann.Wenn eine Entscheidung von vielen Werten abhängt, vermeide unnötige Zähler oder lange Ketten aus or und and.
any(values) ist wahr, wenn mindestens eine Eingabe Truthy ist.all(values) ist wahr, wenn jede Eingabe Truthy ist.Du kannst Daten zunächst mit einer List Comprehension in boolesche Werte umwandeln. Diese Lektion verwendet bewusst Comprehensions, die du schon kennst; Generatorausdrücke folgen später.
checks = [result == "ok" for result in results]Bei einer leeren Eingabe ist any([]) gleich False, aber all([]) gleich True. Mathematisch ist das sinnvoll, aber ein Release-Ablauf verlangt meist mindestens eine Prüfung, bevor er meldet, dass alle Prüfungen bestanden wurden. Füge eine ausdrückliche Anforderung „nicht leer“ hinzu, wenn die fachliche Regel sie verlangt.
alerts = [False, True, False]
print(any(alerts))Ausgabe:
TrueEin einziges Truthy-Element genügt.
latencies = [42, 90, 110]
within_limit = [value <= 120 for value in latencies]
print(all(within_limit))Ausgabe:
TrueJeder Vergleich ist wahr.
print(any([]))
print(all([]))Ausgabe:
False
TrueWenn „leer“ bedeutet, dass keine Prüfungen ausgeführt wurden, brauchst du möglicherweise stattdessen bool(checks) and all(checks).
responses = [" PASS ", "pass", " FAIL "]
normalized = [value.strip().lower() for value in responses]
print(any([value == "fail" for value in normalized]))Ausgabe:
TrueNormalisiere vor dem Vergleich, damit Groß-/Kleinschreibung und Leerzeichen die Entscheidung nicht verändern.
| Anforderung | Prüfung |
|---|---|
| Ein oder mehrere Werte erfüllen ein Prädikat | any([...]) |
| Jeder Wert erfüllt ein Prädikat | all([...]) |
| Kein Wert erfüllt ein Prädikat | not any([...]) |
| Mindestens ein Wert verlangt und alle gültig | bool(values) and all([...]) |
all([]) ist True – das bedeutet nicht, dass eine echte Validierung stattgefunden hat.any() bedeutet „mindestens eines“, nicht „genau eines“.not any(...) nicht mit not all(...) – sie beschreiben unterschiedliche Situationen.