Solución al Ejercicio: Validar clave
📋 Copiar código
import re
def validar_clave(clave):
"""
Valida si una cadena cumple con ciertos criterios para ser una clave válida.
Args:
clave: La cadena de texto a validar.
Returns:
True si la clave es válida, False en caso contrario.
"""
if len(clave) < 8:
return False
if not re.search(r'[A-Z]', clave):
return False
if not re.search(r'[a-z]', clave):
return False
if not re.search(r'[0-9]', clave):
return False
if not re.search(r'[^a-zA-Z0-9\s]', clave):
return False
return True
# Ejemplos de uso
clave1 = "Segura1!"
resultado1 = validar_clave(clave1)
print(f"'{clave1}' es válida: {resultado1}")
clave2 = "segura"
resultado2 = validar_clave(clave2)
print(f"'{clave2}' es válida: {resultado2}")
clave3 = "SEGURA"
resultado3 = validar_clave(clave3)
print(f"'{clave3}' es válida: {resultado3}")
clave4 = "12345678"
resultado4 = validar_clave(clave4)
print(f"'{clave4}' es válida: {resultado4}")
clave5 = "SeguraUno"
resultado5 = validar_clave(clave5)
print(f"'{clave5}' es válida: {resultado5}")
clave6 = "Segura Uno!"
resultado6 = validar_clave(clave6)
print(f"'{clave6}' es válida: {resultado6}")
clave7 = "S1!"
resultado7 = validar_clave(clave7)
print(f"'{clave7}' es válida: {resultado7}")
clave8 = "Segura1"
resultado8 = validar_clave(clave8)
print(f"'{clave8}' es válida: {resultado8}")
Explicación del Código:
-
Importa el módulo re
:
Se utiliza para trabajar con expresiones regulares.
-
Función validar_clave(clave)
:
- Longitud:
if
len(clave) < 8:
: Verifica si la longitud de la clave es menor que
8 caracteres. Si lo es, devuelve False
.
- Mayúscula:
if
not re.search(r'[A-Z]', clave):
: Utiliza re.search()
para buscar al menos una letra mayúscula ([A-Z]
) en la
clave. Si no se encuentra ninguna, devuelve False
.
- Minúscula:
if
not re.search(r'[a-z]', clave):
: Utiliza re.search()
para buscar al menos una letra minúscula ([a-z]
) en la
clave. Si no se encuentra ninguna, devuelve False
.
- Dígito:
if not
re.search(r'[0-9]', clave):
: Utiliza re.search()
para buscar al menos un dígito ([0-9]
) en la clave. Si no
se encuentra ninguno, devuelve False
.
- Carácter Especial:
if not re.search(r'[^a-zA-Z0-9\s]', clave):
: Utiliza
re.search()
para buscar al menos un carácter que NO (^
)
sea una letra (mayúscula o minúscula), un dígito o un espacio en blanco
(\s
). Si no se encuentra ninguno, devuelve False
.
- Válida: Si la clave pasa
todas las comprobaciones anteriores, la función devuelve
True
.
Ejemplos de Uso:
Los ejemplos muestran cómo la función evalúa
diferentes cadenas para determinar si cumplen con los criterios de una clave
válida. Se incluyen casos que cumplen con todos los criterios y casos que fallan
en uno o más de ellos.