any und all
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 63 von 78.
any() und all() stellen eine Ja-oder-Nein-Frage zu einem ganzen Array. Beide nehmen eine Funktion entgegen, die für ein Element true oder false zurückgibt:
any()gibttruezurück, wenn die Funktion für mindestens ein Elementtruezurückgibt.all()gibttruezurück, wenn die Funktion für jedes Elementtruezurückgibt.
var enemy_hp = [30, 0, 12]
print(enemy_hp.any(func(hp): return hp == 0))
print(enemy_hp.all(func(hp): return hp > 0))true
falseEin Gegner hat 0 HP, daher ist any() true, und derselbe Gegner bewirkt, dass all() false ist.
Beide brechen ab, sobald die Antwort feststeht: any() beim ersten true, all() beim ersten false. Sie funktionieren auch mit benannten Funktionen, wie numbers.all(is_even).
Bei einem leeren Array gibt any() false zurück, weil kein Element die Bedingung erfüllt, und all() gibt true zurück, weil kein Element die Bedingung nicht erfüllt.
Verwende sie in einer Bedingung anstelle einer Schleife mit einer Flag-Variable:
var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
print("The door opens")Aufgabe
EinfachDas Programm liest eine durch Kommas getrennte Zeile mit Punktzahlen ein und speichert sie im Array numbers. Dieser Teil ist bereits geschrieben.
Gib zwei Zeilen aus:
Any perfect:gefolgt vontrue, wenn mindestens eine Punktzahl100beträgt, andernfallsfalseAll passed:gefolgt vontrue, wenn jede Punktzahl mindestens50beträgt, andernfallsfalse
Verwende any() für die erste Zeile und all() für die zweite. Für die Eingabe 100,75,40 lautet die Ausgabe:
Any perfect: true
All passed: falseProbier es selbst
extends Node
func _ready():
var numbers := []
for part in OS.read_string_from_stdin().split(","):
numbers.append(int(part))
# Gib die beiden Zeilen mit any() und all() aus
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen11Funktionen höherer Ordnung
Die map-MethodeDie filter-MethodeDie reduce-Methodeany und allWiederholung – E-Mail-ValidatorWiederholung – Zahlenverarbeitung3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler