From ad23bc5077e91aedaf2920c99ba0e711e1e862af Mon Sep 17 00:00:00 2001 From: Guapitoluv Date: Mon, 2 Feb 2026 15:19:42 +0000 Subject: [PATCH] alterations in validador_de_nombres --- validador_de_nombres.py | 105 ++++++++++++++++++++++++++++------------ 1 file changed, 75 insertions(+), 30 deletions(-) diff --git a/validador_de_nombres.py b/validador_de_nombres.py index e274b13..d92ffd8 100644 --- a/validador_de_nombres.py +++ b/validador_de_nombres.py @@ -1,30 +1,75 @@ -""" -Script: Validador de nombres -Autor: Anllev -Descripción: Este programa valida que un nombre de usuario cumpla con -reglas de longitud y formato. - -""" -nombre1 = input("Ingrese su primer nombre: ").strip() -while True: - if nombre1[0] == " " or nombre1[-1] == " ": - print("Hola " + nombre1 + "!!!") - break - elif not nombre1.isalpha(): - print("Error, el nombre solo puede contener letras y un solo nombre. Vuelva a intentarlo.") - nombre1 = input("Ingrese su primer nombre: ") - elif len(nombre1) < 2: - print("Error") - nombre1 = input("El nombre debe tener al menos 2 letras. Vuelva a intentarlo: ") - elif len(nombre1) > 10: - print("Error") - nombre1 = input("El nombre no puede tener más de 10 letras. Vuelva a intentarlo: ") - elif nombre1[0].islower(): - print("Error") - nombre1 = input("Los nombres empiezan con mayúscula!!!. Vuelva a intentarlo: ") - elif nombre1[1:10] != nombre1[1:10].lower(): - print("Error") - nombre1 = input("El resto del nombre debe estar en minúscula!!!. Vuelva a intentarlo: ") - else: - print("Hola " + nombre1 + "!!!") - break +""" +Script: Validador de nombres +Autor: Anllev +Descripción: Este programa valida que un nombre de usuario cumpla con +reglas de longitud y formato. + +- - - + +Intenta escribir código en inglés más tarde. +Nada te impide escribir en tu propio idioma, +pero generalmente es mejor que todos escriban +en un solo idioma (inglés) para que todos +puedan entender tu código. Es un consenso, no +una regla. +""" + +def validar(nombre: str) -> bool: + if nombre[0] == " " or nombre[-1] == " ": # ¿Por qué eso? + return True + + if not nombre.isalpha(): + print("Error, el nombre solo puede contener letras y un solo nombre!!! Vuelva a intentarlo.") + return False + + if len(nombre) < 2: + print("Error, El nombre debe tener al menos 2 letras!!! Vuelva a intentarlo.") + return False + + if len(nombre) > 10: + print("Error, El nombre no puede tener más de 10 letras!!! Vuelva a intentarlo.") + return False + + if nombre[0].islower(): + print("Error, Los nombres empiezan con mayúscula!!! Vuelva a intentarlo.") + return False + + if not nombre[1:].islower(): + print("Error, El resto del nombre debe estar en minúscula!!! Vuelva a intentarlo.") + return False + + return True + +def validador_de_nombres() -> None: + print("- - - validador_de_nombres - - -") + + while True: + nombre: str = input("Ingrese su primer nombre: ") + + if validar(nombre): + print(f"Hola {nombre}!!!") + break + + print() + + print("- " * 18 + "\n") + +""" +Si desea escribir con mayúscula la primera +letra del nombre sin necesidad de validarlo, +utilice la siguiente función en lugar de +name_validator(). ↓ +""" + +def poner_nombres_en_mayuscula() -> None: + print("- - poner_nombres_en_mayuscula - -") + nombre: str = input("Ingrese su primer nombre: ").capitalize() + print(f"Hola {nombre}!!!") + print("- " * 18 + "\n") + +# Aquí se ejecutan ambas funciones. ↓ +# Ambas tienen el mismo resultado. +# La diferencia es que una expone los errores al usuario. +if __name__ == "__main__": + validador_de_nombres() + poner_nombres_en_mayuscula() \ No newline at end of file