Somma dei valori
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 49 di 78.
GDScript non ha una funzione integrata che somma un array. Aggiungi i valori con un ciclo e un totale progressivo, una variabile che parte da 0 e cresce con ogni valore:
var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
total += amount
print(total) # 100Per aggiungere i valori a un importo iniziale, inizia da lì il totale. Un giocatore che aveva 40 monete prima del livello finisce con 140:
var total := 40
for amount in coins:
total += amount
print(total) # 140Lo stesso ciclo somma i valori di un dizionario quando scorre values() e somma un campo di ogni dizionario in un array quando legge quel campo:
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) # 145Per ottenere un totale per ogni gruppo, conserva i totali in un dizionario. get() con il valore predefinito 0 gestisce un gruppo che non ha ancora un totale:
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 }Per calcolare la media, dividi il totale per il numero di valori e converti prima in float, così i decimali vengono mantenuti: float(total) / coins.size().
Sfida
FacileUn negozio vuole conoscere il totale nella cassa alla fine della giornata. Il programma legge due righe:
- Le vendite della giornata, numeri interi separati da spazi. La riga è vuota se non ci sono state vendite.
- Il denaro che si trovava nella cassa all'inizio della giornata (un numero intero).
Aggiungi ogni vendita al denaro iniziale e stampa il risultato dopo Total: . Per gli input 100 200 150 300 e 50, l'output è:
Total: 800Provalo tu
extends Node
func _ready():
var sales := OS.read_string_from_stdin().split(" ", false)
var starting_cash := int(OS.read_string_from_stdin())
# Aggiungi ogni vendita al denaro iniziale e stampa il totale
pass
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online