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