Saltar al contenido principal

Contar Vocales

Cuenta cuántas vocales hay en una cadena. Practica la iteración sobre strings, el operador 'in' y el manejo de mayúsculas en Python.

for loop in operator str.lower() contador sum()

El problema

Escribe una función contar_vocales(texto) que devuelva el número de vocales (a, e, i, o, u) en el texto.

La función debe contar tanto mayúsculas como minúsculas como vocales válidas.

Ejemplos

textoresultado
"hola mundo"4
"Python"1 (solo la ‘o’)
"AEIOU"5
"rhythm"0
""0

Código inicial

def contar_vocales(texto):
    # Tu código aquí
    pass


print(contar_vocales("hola mundo"))  # 4
print(contar_vocales("Python"))      # 1
print(contar_vocales("AEIOU"))       # 5

Concepto clave: el operador in

El operador in comprueba si un elemento está dentro de una secuencia:

"a" in "aeiou"   # True
"b" in "aeiou"   # False
"A" in "aeiou"   # False ← ojo con mayúsculas
"A".lower() in "aeiou"  # True ← solución

Variante: contar cada vocal por separado

from collections import Counter

def contar_vocales_detalle(texto):
    vocales = "aeiouáéíóú"
    conteo = Counter(c.lower() for c in texto if c.lower() in vocales)
    return dict(conteo)


print(contar_vocales_detalle("murciélago"))
# {'u': 1, 'i': 1, 'é': 1, 'a': 1, 'o': 1}

Próximos pasos

  • Modifica la función para que devuelva un diccionario {vocal: cantidad} en vez de un número
  • Extiende para contar consonantes también
  • Calcula el porcentaje de vocales sobre el total de letras