Hoy vamos a ver un ejercicio de programación en Python sobre conteo de letras en una cadena.
Lo que tenemos que hacer es contar cuántas veces aparece una letra en una cadena y luego mostrar la letra, un asterisco por cada ocurrencia y el porcentaje que ocupa esa letra dentro de la cadena.
Por poner un ejemplo, al invocar a la función como se ve a continuación:
La salida sería la siguiente:
Si te fijas, también cuenta cuántas veces aparece el carácter del espacio, dos puntos, barra, etcétera. Muestra el conteo de las letras junto con su porcentaje y una cantidad de asteriscos.
Explicación del algoritmo
Contando letras
Para contar el porcentaje de aparición de letras en una cadena con Python vamos a usar un diccionario, usando la letra como clave. Entonces la clave será la letra, y el valor será otro diccionario que tendrá el conteo.
Recorremos la cadena o frase letra por letra. En cada iteración comprobamos si el carácter existe en el diccionario; en caso de que no entonces lo agregamos con un conteo de 0 por defecto.
Después de hacer la comparación anterior aumentamos el conteo del diccionario en esa clave. Básicamente si la letra no existe la agregamos, y si existe le aumentamos el conteo.
Calculando porcentaje
Hasta ahora ya tenemos el diccionario con cada letra y la cantidad de veces que aparece. Lo que haremos a continuación será recorrer el diccionario y calcular el porcentaje.
La fórmula es:
Porcentaje = (cantidad de veces que aparece la letra * 100) / cantidad total de letras
Finalmente el diccionario tendrá como clave la letra, y como valor el conteo y porcentaje. Ya solo falta imprimir.
Porcentaje de ocurrencia de letras en frase con Python
Es momento de pasar al código. Es importante mencionar que la función puede ser modificada a tu gusto, y que por ejemplo podrías hacer que solo devuelva el diccionario para que lo imprimas en otro lugar.
Comenzamos contando las letras:
Después recorremos el diccionario y vamos calculando el porcentaje que representa la letra:
Finalmente volvemos a iterar el diccionario e imprimimos lo que el ejercicio requiere. Por cierto, para imprimir los asteriscos simplemente hacemos un ciclo for e imprimimos un asterisco indicando el end
en ""
para que no imprima salto de línea.
Nota: estoy usando round para redondear el porcentaje. Puedes modificarlo si quieres mostrarlo completo o con más decimales.
Poniendo todo junto

La función y su modo de uso queda así:
De este modo podemos contar la cantidad de veces que aparece una letra en una oración, indicar ese conteo con asteriscos y también mostrar el porcentaje.
Si quieres aprender Python te recomiendo leer otras entradas de este lenguaje en mi blog.