Python — Reto 1.3: Contador de vocales y consonantes
Para nuestro último reto vamos a crear un contador de vocales y consonantes en un texto ingresado por el usuario.

Python — Reto 1.3: Contador de vocales y consonantes
Para nuestro último reto vamos a crear un contador de vocales y consonantes en un texto ingresado por el usuario.
Requisitos
El reto consiste en contar la cantidad de ocurrencia de caracteres en un texto ingresado por el usuario para:
- Vocales (a, e, i, o, u)
- Consonantes (resto del abecedario)
Para añadir un poco de complejidad, mostraremos la cantidad de palabras, considerando válidas únicamente aquellas que contengan caracteres alfabéticos.
Comencemos a codear
Emplearemos cuatro funciones:
- Menú para el ingreso del texto del usuario.
- Función para contar las vocales
- Función para contar las consonantes
- Función para contar las palabras
def menu():
print("-" * 50)
print("Contador de vocales y consonantes")
while True:
print("-" * 50)
texto = input("Ingrese un texto: ")
if texto:
break
else:
print("El texto no puede estar vacío. Intente nuevamente.")
return texto
def contar_vocales(texto):
vocales = "aeiouAEIOU"
contador_vocales = sum(1 for letra in texto if letra in vocales)
return contador_vocales
def contar_consonantes(texto):
vocales = "aeiouAEIOU"
contador_consonantes = sum(1 for letra in texto if letra.isalpha() and letra not in vocales)
return contador_consonantes
def contador_palabras(texto):
palabras = [palabra for palabra in texto.split(" ") if palabra.isalpha()]
return len(palabras)
Ahora vamos a agregar el bloque de código que se encargará de ejecutar nuestras funciones, de consultar al usuario si desea seguir probando con otro texto y de realizar las pruebas correspondientes.
if __name__ == "__main__":
while True:
texto = menu()
vocales = contar_vocales(texto)
consonantes = contar_consonantes(texto)
palabras = contador_palabras(texto)
print("-" * 50)
print(f"Texto ingresado: {texto}")
print(f"Número de vocales: {vocales}")
print(f"Número de consonantes: {consonantes}")
print(f"Número de palabras: {palabras}")
print("-" * 50)
continuar = input("¿Desea ingresar otro texto? (s/n): ")
if continuar.lower() != 's':
break
user@host $ python main.py
--------------------------------------------------
Contador de vocales y consonantes
--------------------------------------------------
Ingrese un texto: Esto es un texto 24 con 17 algunos numeros
--------------------------------------------------
Texto ingresado: Esto es un texto 24 con 17 algunos numeros
Número de vocales: 13
Número de consonantes: 17
Número de palabras: 7
--------------------------------------------------
¿Desea ingresar otro texto? (s/n): s
--------------------------------------------------
Contador de vocales y consonantes
--------------------------------------------------
Ingrese un texto: Este es un texto normal
--------------------------------------------------
Texto ingresado: Este es un texto normal
Número de vocales: 8
Número de consonantes: 11
Número de palabras: 5
--------------------------------------------------
¿Desea ingresar otro texto? (s/n): n
Repositorio con la solución propuesta.
Podemos encontrar muchas mejoras, como por ejemplo:
- ¿Qué pasa si la palabra está entre paréntesis o entre comillas?
- ¿Qué pasa si la palabra tiene un signo de puntuación al final, como un punto, una coma o un punto y coma?
¿Te animas a mejorarlo? Happy coding…!
메타데이터
- post_id
- d5c54de65166
- slug
- python-reto-1-3-contador-de-vocales-y-consonantes-d5c54de65166
- url
- https://medium.com/@denebtech/python-reto-1-3-contador-de-vocales-y-consonantes-d5c54de65166
- canonical_url
- https://medium.com/@denebtech/python-reto-1-3-contador-de-vocales-y-consonantes-d5c54de65166
- author_url
- https://medium.com/@denebtech
- status
- ok
- fetched_at
- 2026-07-10 16:32:07