3 usuarios conectados

Pangrama 2. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada es_pangrama que tome una cadena de texto como entrada y devuelva True si la cadena es un pangrama (contiene todas las letras del alfabeto español al menos una vez, sin distinguir entre mayúsculas y minúsculas), y False en caso contrario. Considera las letras del alfabeto español: a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z.

Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Contar ocurrencias de subcadena

📋 Copiar código


import re

def es_pangrama(texto):
  """
  Verifica si una cadena de texto es un pangrama del alfabeto español
  (contiene todas las letras al menos una vez, sin distinguir mayúsculas/minúsculas).

  Args:
    texto: La cadena de texto de entrada.

  Returns:
    True si la cadena es un pangrama, False en caso contrario.
  """
  alfabeto_es = set('abcdefghijklmnñopqrstuvwxyz')
  texto_limpio = re.sub(r'[^a-záéíóúüñ]', '', texto.lower())
  letras_en_texto = set(texto_limpio)
  return alfabeto_es.issubset(letras_en_texto)

# Ejemplos de uso
texto1 = "El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón en Zanzibar."
resultado1 = es_pangrama(texto1)
print(f"'{texto1}' es pangrama: {resultado1}")

texto2 = "Esta frase no contiene todas las letras."
resultado2 = es_pangrama(texto2)
print(f"'{texto2}' es pangrama: {resultado2}")

texto3 = "abcdefghijklmnñopqrstuvwxyz"
resultado3 = es_pangrama(texto3)
print(f"'{texto3}' es pangrama: {resultado3}")

texto4 = "AbCdEfGhIjKlMnÑoPqRsTuVwXyZ"
resultado4 = es_pangrama(texto4)
print(f"'{texto4}' es pangrama: {resultado4}")

texto5 = "El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y frío."
resultado5 = es_pangrama(texto5)
print(f"'{texto5}' es pangrama: {resultado5}")

Explicación del Código:

  1. Importa el módulo re: Se utiliza para limpiar el texto.

  2. Función es_pangrama(texto):

    • Define un conjunto alfabeto_es que contiene todas las letras del alfabeto español en minúsculas.
    • Limpia el texto de entrada:
      • texto.lower(): Convierte todo el texto a minúsculas para una comparación insensible a mayúsculas.
      • re.sub(r'[^a-záéíóúüñ]', '', ...): Utiliza una expresión regular para eliminar cualquier carácter que no sea una letra del alfabeto español (incluyendo vocales acentuadas y la 'ñ').
    • Crea un conjunto letras_en_texto que contiene todas las letras presentes en el texto_limpio. Usar un conjunto es eficiente para verificar la presencia de elementos únicos.
    • Utiliza el método issubset() para verificar si el conjunto alfabeto_es es un subconjunto del conjunto letras_en_texto. Si lo es, significa que todas las letras del alfabeto español están presentes en el texto, y la función devuelve True. De lo contrario, devuelve False.

Ejemplos de Uso:

Los ejemplos muestran cómo la función verifica si diferentes cadenas de texto son pangramas del alfabeto español. Se incluyen casos que son pangramas, casos que no lo son y casos con mayúsculas y minúsculas. También se incluye un ejemplo con una frase de pangrama común en español.