1 usuario conectado

Validar código postal. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada validar_codigo_postal_es que tome una cadena de texto como entrada y devuelva True si la cadena consiste exactamente en 5 dígitos, y False en caso contrario.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. import re:

    • Importa el módulo re para trabajar con expresiones regulares.
  2. 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.
  3. 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.
  4. 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).