Trovare minimo e massimo
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 50 di 78.
Gli array hanno i metodi min() e max(), che restituiscono l'elemento più piccolo e quello più grande:
var temps := [18, 25, 9, 31, 22]
print(temps.min()) # 9
print(temps.max()) # 31Le funzioni globali min() e max() confrontano i numeri che gli passi, il che è utile per due o tre valori:
print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, mai superiore a 100Le stringhe vengono confrontate carattere per carattere, in base al loro codice Unicode. Ogni lettera maiuscola viene prima di ogni lettera minuscola:
var words := ["kiwi", "apple", "Fig"]
print(words.min()) # Fig
print(words.max()) # kiwiLa stessa regola si applica ai numeri memorizzati come testo: "9" è maggiore di "56", perché il carattere 9 viene dopo 5. Converti l’input con int() prima di confrontare i numeri.
Su un array vuoto, entrambi i metodi restituiscono null. Per trovare dove si trova il valore più grande, passalo a find(): temps.find(temps.max()) è 3. Per un dizionario, prendi il valore più grande tra i suoi valori e cerca la relativa chiave con find_key(), che restituisce la prima chiave con quel valore:
var scores := {"Mia": 120, "Leo": 95, "Ana": 140}
var best: int = scores.values().max()
print(scores.find_key(best), " ", best) # Ana 140max() restituisce un valore di qualsiasi tipo, quindi dichiara il tipo della variabile (var best: int) invece di scrivere :=.
Sfida
FacileIl programma legge due righe: numeri interi separati da spazi e parole separate da spazi. Ogni riga contiene almeno un valore.
Stampa il numero più piccolo e quello più grande, poi la parola più piccola e quella più grande, usando min() e max(). Confronta i numeri come numeri, non come testo. Per gli input 42 17 23 56 9 34 e kiwi apple banana cherry date, l'output è:
Smallest number: 9
Largest number: 56
Smallest word: apple
Largest word: kiwiProvalo tu
extends Node
func _ready():
var number_texts := OS.read_string_from_stdin().split(" ", false)
var words := Array(OS.read_string_from_stdin().split(" ", false))
# Converti i numeri in int, poi stampa i quattro risultati
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