Werte summieren
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 49 von 78.
GDScript verfügt über keine integrierte Funktion, die ein Array aufsummiert. Du addierst die Werte mit einer Schleife und einer laufenden Summe, einer Variablen, die bei 0 beginnt und mit jedem Wert wächst:
var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
total += amount
print(total) # 100Um die Werte zu einem Anfangsbetrag hinzuzufügen, beginne mit diesem Betrag als Gesamtsumme. Ein Spieler, der vor dem Level 40 Münzen hatte, hat am Ende 140:
var total := 40
for amount in coins:
total += amount
print(total) # 140Dieselbe Schleife summiert die Werte eines Dictionarys, wenn sie über values() iteriert, und summiert ein Feld jedes Dictionarys in einem Array, wenn sie dieses Feld ausliest:
var inventory := {"potion": 3, "arrow": 20, "bomb": 2}
var items := 0
for count in inventory.values():
items += count
print(items) # 25
var party := [{"hero": "Mia", "hp": 80}, {"hero": "Leo", "hp": 65}]
var party_hp := 0
for member in party:
party_hp += member["hp"]
print(party_hp) # 145Um eine Summe pro Gruppe zu erhalten, speichere die Summen in einem Dictionary. get() mit dem Standardwert 0 berücksichtigt eine Gruppe, für die es noch keine Summe gibt:
var loot := [["gold", 10], ["gems", 2], ["gold", 25]]
var totals := {}
for drop in loot:
totals[drop[0]] = totals.get(drop[0], 0) + drop[1]
print(totals) # { "gold": 35, "gems": 2 }Für den Durchschnitt teilst du die Gesamtsumme durch die Anzahl der Werte und wandelst zuerst in float um, damit die Nachkommastellen erhalten bleiben: float(total) / coins.size().
Aufgabe
EinfachEin Geschäft möchte den Kassenbestand am Ende des Tages wissen. Das Programm liest zwei Zeilen:
- Die Verkäufe des Tages, ganze Zahlen, durch Leerzeichen getrennt. Die Zeile ist leer, wenn es keine Verkäufe gab.
- Das Bargeld, das sich zu Beginn des Tages in der Kasse befand (eine ganze Zahl).
Addiere jeden Verkauf zum Anfangsbestand und gib das Ergebnis nach Total: aus. Für die Eingaben 100 200 150 300 und 50 lautet die Ausgabe:
Total: 800Probier es selbst
extends Node
func _ready():
var sales := OS.read_string_from_stdin().split(" ", false)
var starting_cash := int(OS.read_string_from_stdin())
# Addiere jeden Verkauf zum Startkapital und gib die Gesamtsumme aus
pass
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ügen3Mehrdimensionale 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