Solución al Ejercicio: Validar nombre de usuario
📋 Copiar código
def validar_nombre_usuario(nombre_usuario):
"""
Valida si una cadena cumple con ciertos criterios para ser un nombre de usuario válido.
Args:
nombre_usuario: La cadena de texto a validar.
Returns:
True si el nombre de usuario es válido, False en caso contrario.
"""
longitud = len(nombre_usuario)
if not (3 <= longitud <= 15):
return False
for char in nombre_usuario:
if not ('a' <= char <= 'z' or '0' <= char <= '9' or char == '_'):
return False
if nombre_usuario.startswith('_') or nombre_usuario.endswith('_'):
return False
if '__' in nombre_usuario:
return False
return True
# Ejemplos de uso
usuario1 = "usuario_valido123"
resultado1 = validar_nombre_usuario(usuario1)
print(f"'{usuario1}' es válido: {resultado1}")
usuario2 = "us"
resultado2 = validar_nombre_usuario(usuario2)
print(f"'{usuario2}' es válido: {resultado2}")
usuario3 = "demasiado_largo_nombre_de_usuario"
resultado3 = validar_nombre_usuario(usuario3)
print(f"'{usuario3}' es válido: {resultado3}")
usuario4 = "UsuarioConMayusculas"
resultado4 = validar_nombre_usuario(usuario4)
print(f"'{usuario4}' es válido: {resultado4}")
usuario5 = "nombre-con-guion"
resultado5 = validar_nombre_usuario(usuario5)
print(f"'{usuario5}' es válido: {resultado5}")
usuario6 = "_empieza_con_guion"
resultado6 = validar_nombre_usuario(usuario6)
print(f"'{usuario6}' es válido: {resultado6}")
usuario7 = "termina_con_"
resultado7 = validar_nombre_usuario(usuario7)
print(f"'{usuario7}' es válido: {resultado7}")
usuario8 = "guion__seguido"
resultado8 = validar_nombre_usuario(usuario8)
print(f"'{usuario8}' es válido: {resultado8}")
usuario9 = "valido"
resultado9 = validar_nombre_usuario(usuario9)
print(f"'{usuario9}' es válido: {resultado9}")
Explicación del Código:
- Función
validar_nombre_usuario(nombre_usuario)
:
- Longitud: Verifica si
la longitud del
nombre_usuario
está dentro del rango
permitido (3 a 15 caracteres).
- Caracteres permitidos:
Itera a través de cada carácter de la cadena y comprueba si es una letra
minúscula, un número o un guion bajo. Si encuentra algún otro carácter,
la función devuelve
False
.
- Guion bajo al inicio o al
final: Utiliza los métodos de cadena
startswith('_')
y endswith('_')
para verificar si el nombre de usuario
comienza o termina con un guion bajo. Si es así, devuelve False
.
- Guiones bajos consecutivos:
Utiliza el operador
in
para verificar si la subcadena
'__'
(dos guiones bajos seguidos) está presente en el nombre de
usuario. Si lo está, devuelve False
.
- Válido: Si el nombre de
usuario pasa todas estas comprobaciones, la función devuelve
True
.
Ejemplos de Uso:
Los ejemplos muestran cómo la función evalúa
diferentes cadenas para determinar si son nombres de usuario válidos según los
criterios definidos. Se incluyen casos que cumplen con todos los criterios y
casos que fallan en uno o más de ellos.
Este ejemplo utiliza solo las funcionalidades
básicas de cadenas y estructuras de control de Python, sin necesidad de instalar
nada adicional. ¿Te resulta interesante este tipo de validación?