Gestore intelligente dei contatti
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 76 di 78.
Sfida
MedioPulisci un elenco di contatti. Il programma legge un numero intero n, poi n righe. Ogni riga è un contatto: un nome, un indirizzo email e un numero di telefono, separati da virgole (ogni riga contiene esattamente due virgole).
Esamina i contatti in ordine:
- Scrivi l'indirizzo email in minuscolo e conserva solo le cifre del numero di telefono:
(555) 123-4567diventa5551234567 - Salta il contatto se l'indirizzo email non è valido: un indirizzo email valido contiene
@e., e non contiene spazi - Salta il contatto se il numero di telefono non contiene esattamente
10cifre - Salta il contatto se un contatto che hai già conservato ha lo stesso indirizzo email o lo stesso numero di telefono (dopo la pulizia)
Stampa ogni contatto che conservi su una riga separata: il nome, | , l'indirizzo email, | e le cifre del numero di telefono. Infine, stampa Contacts kept: , quanti ne hai conservati, of e n.
Per questi input:
3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345l'output è:
John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3Jane viene saltata perché il suo numero di telefono ha le stesse cifre di quello di John, e Bob perché il suo indirizzo email non contiene @ e il suo numero di telefono è troppo corto.
Provalo tu
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
# Lee n contactos, límpialos e imprime los que conserves
pass
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