Gestionnaire intelligent de contacts
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 76 sur 78.
Défi
MoyenNettoyez une liste de contacts. Le programme lit un nombre entier n, puis n lignes. Chaque ligne correspond à un contact : un nom, une adresse e-mail et un numéro de téléphone, séparés par des virgules (chaque ligne contient exactement deux virgules).
Parcourez les contacts dans l’ordre :
- Écrivez l’adresse e-mail en minuscules et ne gardez que les chiffres du numéro de téléphone :
(555) 123-4567devient5551234567 - Ignorez le contact si l’adresse e-mail n’est pas valide : une adresse e-mail valide contient
@et., et ne contient aucun espace - Ignorez le contact si le numéro de téléphone ne contient pas exactement
10chiffres - Ignorez le contact si un contact que vous avez déjà gardé a la même adresse e-mail ou le même numéro de téléphone (après nettoyage)
Affichez chaque contact que vous gardez sur sa propre ligne : le nom, | , l’adresse e-mail, | et les chiffres du numéro de téléphone. Enfin, affichez Contacts kept: , le nombre de contacts gardés, of et n.
Pour les entrées suivantes :
3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345le résultat est :
John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3Jane est ignorée, car son numéro de téléphone contient les mêmes chiffres que celui de John, et Bob est ignoré, car son adresse e-mail ne contient pas de @ et son numéro de téléphone est trop court.
Essayez vous-même
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
# Lis n contacts, nettoie-les et affiche ceux que tu conserves
pass
Toutes les leçons de Logique et flux d’exécution
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne