Escribe un código en Python que tome una frase y
devuelva un diccionario con el recuento de cada letra que aparece en la frase
(ignorando espacios y signos de puntuación, y considerando mayúsculas y
minúsculas como la misma letra).
Solución al Ejercicio: Contar letras en frase
📋 Copiar código
import string
def contar_letras(frase):
"""
Toma una frase y devuelve un diccionario con el recuento de cada letra (ignorando espacios y puntuación).
Args:
frase: La frase a analizar (cadena de texto).
Returns:
Un diccionario donde las claves son las letras en minúsculas y los valores son su frecuencia.
"""
conteo_letras = {}
frase = frase.lower()
for caracter in frase:
if caracter in string.ascii_lowercase:
if caracter in conteo_letras:
conteo_letras[caracter] += 1
else:
conteo_letras[caracter] = 1
return conteo_letras
# Ejemplo de uso
mi_frase = "Esta es una frase de ejemplo."
recuento = contar_letras(mi_frase)
print(f"Frase original: {mi_frase}")
print(f"Recuento de letras: {recuento}")
otra_frase = "Hola Mundo!"
otro_recuento = contar_letras(otra_frase)
print(f"Frase original: {otra_frase}")
print(f"Recuento de letras: {otro_recuento}")
Explicación del Código:
-
import string
:
- Importa el módulo
string
,
que contiene constantes útiles, incluyendo string.ascii_lowercase
,
una cadena con todas las letras minúsculas del alfabeto inglés.
-
def contar_letras(frase):
:
- Define una función llamada
contar_letras
que toma una frase (frase
) como
argumento.
-
"""Docstring..."""
:
- La cadena de documentación explica la
función, sus argumentos y lo que devuelve.
-
conteo_letras = {}
:
- Se inicializa un diccionario vacío
llamado
conteo_letras
para almacenar el recuento de cada
letra.
-
frase = frase.lower()
:
- Se convierte toda la frase a minúsculas
utilizando el método
lower()
. Esto asegura que las letras
mayúsculas y minúsculas se cuenten juntas.
-
for caracter in frase:
:
- Se itera sobre cada
caracter
en la frase convertida a minúsculas.
-
if caracter in
string.ascii_lowercase:
:
- Se verifica si el
caracter
actual es una letra minúscula del alfabeto inglés utilizando in
string.ascii_lowercase
. Esto ignora espacios, signos de
puntuación y cualquier otro carácter que no sea una letra.
-
if caracter in conteo_letras:
:
- Si la letra ya está en el diccionario
conteo_letras
como clave, significa que ya se ha encontrado
antes, por lo que se incrementa su valor (el recuento) en 1.
-
else:
:
- Si la letra no está en el diccionario
conteo_letras
como clave, significa que es la primera vez
que se encuentra, por lo que se añade al diccionario con un valor
inicial de 1.
-
return conteo_letras
:
- Después de iterar sobre todos los
caracteres de la frase, la función devuelve el diccionario
conteo_letras
que contiene el recuento de cada letra encontrada.
-
Ejemplo de uso:
- Se definen dos frases de ejemplo (
mi_frase
y otra_frase
).
- Se llama a la función
contar_letras
con cada frase y el diccionario de recuento de letras resultante se
imprime.