1 usuario conectado

Pangrama. 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 inglés al menos una vez, ignorando mayúsculas y minúsculas). En caso contrario, la función debe devolver False.



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Pangrama

📋 Copiar código


import string

def es_pangrama(texto):
  """
  Verifica si una cadena de texto es un pangrama (contiene todas las
  letras del alfabeto inglés al menos una vez, ignorando case).

  Args:
    texto: La cadena de texto a verificar.

  Returns:
    True si la cadena es un pangrama, False en caso contrario.
  """
  alfabeto = set(string.ascii_lowercase)
  letras_en_texto = set(texto.lower())
  return alfabeto.issubset(letras_en_texto)

# Ejemplos de uso
pangrama1 = "The quick brown fox jumps over the lazy dog"
print(f"'{pangrama1}' es un pangrama: {es_pangrama(pangrama1)}")

no_pangrama1 = "Hello world"
print(f"'{no_pangrama1}' es un pangrama: {es_pangrama(no_pangrama1)}")

pangrama2 = "Pack my box with five dozen liquor jugs"
print(f"'{pangrama2}' es un pangrama: {es_pangrama(pangrama2)}")

no_pangrama2 = "Esta frase no tiene todas las letras."
print(f"'{no_pangrama2}' es un pangrama: {es_pangrama(no_pangrama2)}")

 

Explicación del Código:

  1. Importación del módulo string:

    • Se importa el módulo string, que contiene varias constantes relacionadas con cadenas, incluyendo el alfabeto en minúsculas.
  2. Definición de la función es_pangrama(texto):

    • Se define una función llamada es_pangrama que toma una cadena de texto texto como argumento.
  3. Creación del conjunto del alfabeto:

    • alfabeto = set(string.ascii_lowercase):
      • Se obtiene una cadena con todas las letras minúsculas del alfabeto inglés de string.ascii_lowercase.
      • Esta cadena se convierte a un set. Los conjuntos son útiles para realizar operaciones eficientes de pertenencia y subconjuntos.
  4. Creación del conjunto de letras en el texto:

    • letras_en_texto = set(texto.lower()):
      • La cadena de entrada texto se convierte a minúsculas utilizando .lower() para ignorar la diferencia entre mayúsculas y minúsculas.
      • Luego, se convierte a un set. Esto crea un conjunto que contiene todas las letras únicas presentes en el texto.
  5. Verificación si el alfabeto es un subconjunto de las letras en el texto:

    • return alfabeto.issubset(letras_en_texto):
      • Se utiliza el método issubset() para verificar si el conjunto alfabeto (que contiene todas las letras del alfabeto inglés) es un subconjunto del conjunto letras_en_texto (que contiene todas las letras únicas presentes en el texto).
      • Si alfabeto es un subconjunto de letras_en_texto, significa que todas las letras del alfabeto están presentes al menos una vez en el texto, y la función devuelve True.
      • De lo contrario, si falta alguna letra del alfabeto en el texto, la función devuelve False.
  6. Ejemplos de uso:

    • Se proporcionan varios ejemplos de cadenas para probar la función, incluyendo pangramas conocidos y frases que no lo son.
    • Para cada ejemplo, se llama a la función y se imprime el resultado (True o False).