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).