Gestor inteligente de contactos
Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 76 de 78.
Desafío
IntermedioLimpia una lista de contactos. El programa lee un número entero n y después n líneas. Cada línea es un contacto: un nombre, un correo electrónico y un número de teléfono, separados por comas (cada línea tiene exactamente dos comas).
Recorre los contactos en orden:
- Escribe el correo electrónico en minúsculas y conserva solo los dígitos del número de teléfono:
(555) 123-4567se convierte en5551234567 - Omite el contacto si el correo electrónico no es válido: un correo electrónico válido contiene
@y., y ningún espacio - Omite el contacto si el número de teléfono no tiene exactamente
10dígitos - Omite el contacto si un contacto que conservaste antes tiene el mismo correo electrónico o el mismo número de teléfono (después de limpiarlo)
Imprime cada contacto que conserves en su propia línea: el nombre, | , el correo electrónico, | y los dígitos del teléfono. Por último, imprime Contacts kept: , cuántos conservaste, of y n.
Para estas entradas:
3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345la salida es:
John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3Se omite a Jane porque su número de teléfono tiene los mismos dígitos que el de John, y a Bob porque su correo electrónico no tiene @ y su número de teléfono es demasiado corto.
Pruébalo tú mismo
extends Node
func _ready():
var n := int(OS.read_string_from_stdin())
# Lee n contactos, depúralos e imprime los que conserves
pass
Todas las lecciones de Lógica y flujo
1Cadenas de texto en profundidad
Métodos de cadenasBúsqueda en cadenasReemplazar y eliminar espaciosDividir y unirRepaso - Comprobación del nombre de usuario4Diccionarios, parte 2
Diccionarios anidadosArrays de diccionariosCombinar diccionariosCopiar diccionariosRepaso: contador de frecuencias7Enumeraciones
¿Qué es una enumeración?Definir una enumeraciónValores de una enumeraciónEnumeraciones en matchRepaso: semáforo10Funciones avanzadas
Devolver múltiples valoresFunciones lambda, parte 1Funciones lambda, parte 2Repaso: ordenar con lambdaFunciones recursivas, parte 1Funciones recursivas, parte 2Repaso: sumar un array anidado13Sistema de gestión de inventario
Descripción general del proyectoAñadir artículo2Toma de decisiones avanzada
Coincidencia con variablesGuardas de coincidenciaPatrones de arraysPatrones de diccionariosComprobaciones de pertenenciaRepaso: analizador de comandos5Aplicación de agenda de contactos
Mostrar menúAñadir contacto8Gestor de expedientes estudiantiles
Descripción del proyectoAgregar estudiante3Arrays multidimensionales
Conceptos básicos de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DRepaso: arrays 2DArrays irregularesPatrones comunes de arrays 2DRepaso: tablero de juego6Conjuntos con diccionarios
¿Qué es un conjunto?El diccionario como conjuntoAñadir y eliminarUnión e intersecciónDiferencia de conjuntosRepaso: eliminar duplicados9Agregación avanzada de datos
Suma de valoresCómo encontrar el mínimo y el máximoOrdenación personalizadaRepaso: organizador de diccionariosPractica por tu cuenta: Compilador de GDScript online