Solución al Ejercicio: Validar código postal
📋 Copiar código
import re
def validar_codigo_postal_es(codigo_postal):
"""
Valida si una cadena de texto representa un código postal español (5 dígitos).
Args:
codigo_postal: La cadena de texto a validar.
Returns:
True si la cadena son exactamente 5 dígitos, False en caso contrario.
"""
patron = re.compile(r'^\d{5}$')
return bool(patron.match(codigo_postal))
# Ejemplos de uso
codigo1 = "28001"
resultado1 = validar_codigo_postal_es(codigo1)
print(f"'{codigo1}' es un código postal español válido: {resultado1}")
codigo2 = "08010"
resultado2 = validar_codigo_postal_es(codigo2)
print(f"'{codigo2}' es un código postal español válido: {resultado2}")
codigo3 = "12345"
resultado3 = validar_codigo_postal_es(codigo3)
print(f"'{codigo3}' es un código postal español válido: {resultado3}")
codigo4 = "2800"
resultado4 = validar_codigo_postal_es(codigo4)
print(f"'{codigo4}' es un código postal español válido: {resultado4}")
codigo5 = "280011"
resultado5 = validar_codigo_postal_es(codigo5)
print(f"'{codigo5}' es un código postal español válido: {resultado5}")
codigo6 = "ABCDE"
resultado6 = validar_codigo_postal_es(codigo6)
print(f"'{codigo6}' es un código postal español válido: {resultado6}")
codigo7 = ""
resultado7 = validar_codigo_postal_es(codigo7)
print(f"'' es un código postal español válido: {resultado7}")
codigo8 = "28001-"
resultado8 = validar_codigo_postal_es(codigo8)
print(f"'{codigo8}' es un código postal español válido: {resultado8}")
Explicación del Código:
-
import re:
- Importa el módulo
re para
trabajar con expresiones regulares.
-
def
validar_codigo_postal_es(codigo_postal)::
- Define una función llamada
validar_codigo_postal_es que toma una cadena de texto (codigo_postal)
como entrada.
-
patron = re.compile(r'^\d{5}$'):
- Compila una expresión regular para
verificar si la cadena consiste exactamente en 5 dígitos:
^: Coincide con el
inicio de la cadena.
\d{5}: Coincide con
exactamente 5 dígitos (0-9).
$: Coincide con el
final de la cadena.
- Combinados,
^\d{5}$
aseguran que toda la cadena debe ser exactamente 5 dígitos, sin nada
más al principio o al final.
-
return
bool(patron.match(codigo_postal)):
patron.match(codigo_postal):
Intenta hacer coincidir el patrón con la cadena codigo_postal
desde el principio de la cadena. Si la cadena completa coincide con el
patrón, devuelve un objeto de coincidencia; de lo contrario, devuelve
None.
bool(...): Convierte el
resultado de patron.match() a un valor booleano. Un objeto
de coincidencia se evalúa como True, y None se
evalúa como False. Por lo tanto, la función devuelve
True si la cadena son exactamente 5 dígitos y False
en cualquier otro caso.
Ejemplos de Uso:
Los ejemplos muestran cómo la función valida
diferentes cadenas para determinar si representan un código postal español
válido (según la regla de ser exactamente 5 dígitos).