4 usuarios conectados

Contar letras en frase. Ejercicio en Python

Comparte esto

 

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


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. 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.
  2. def contar_letras(frase)::

    • Define una función llamada contar_letras que toma una frase (frase) como argumento.
  3. """Docstring...""":

    • La cadena de documentación explica la función, sus argumentos y lo que devuelve.
  4. conteo_letras = {}:

    • Se inicializa un diccionario vacío llamado conteo_letras para almacenar el recuento de cada letra.
  5. 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.
  6. for caracter in frase::

    • Se itera sobre cada caracter en la frase convertida a minúsculas.
  7. 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.
  8. 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.
  9. 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.
  10. 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.

     

  11. 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.