← Back to list

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.

denebtech · 2026-05-13 10:01 · 0 claps · 1.8 min read
#python #roadmaps #devops #retos
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

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