Hoy veremos cómo iterar o recorrer una cadena en Python 3 carácter por carácter, o letra por letra si queremos verlo así.

Recorrer cadena usando Python

Expondré 2 formas de hacerlo, la primera es usando un ciclo for pero sin índice, únicamente obteniendo el carácter. La segunda es recorrer una cadena letra por letra pero también llevar un registro del índice.

Recorrer cadena con foreach

Aquí está el primer método, el cual utiliza el ciclo foreach de Python. Es más expresivo y limpio, se ve así:

"""
	2 formas de leer una cadena carácter por carácter
	en Python 3: con y sin índice

	@author parzibyte
"""
cadena = "¡Hola, mundo!"

# Método 1, sin índice
for caracter in cadena:
    print(caracter)

De ese modo leemos cada letra de la oración, palabra o cadena. La “desventaja” es que no tiene un índice en caso de que sea requerido, por eso veremos el segundo método.

Leer cadena letra por letra y con índice

El segundo enfoque utiliza un ciclo con range. Va desde 0 hasta la longitud de la cadena -1, así recorre toda la cadena, pues recordemos que los índices comienzan en 0.

Para obtener la longitud de una cadena como entero, usamos a len. El código entonces queda así:

"""
	2 formas de leer una cadena carácter por carácter
	en Python 3: con y sin índice

	@author parzibyte
"""
cadena = "¡Hola, mundo!"

# Método 2, con índice
for indice in range(len(cadena)):
    caracter = cadena[indice]
    print("En el índice {} tenemos a '{}'".format(indice, caracter))

Es como un simple ciclo numérico, pero ahora tomamos el índice. Y accedemos a la cadena como si fuera un arreglo o lista. De esta manera llevamos un índice numérico y el carácter.

Descargar ejemplos

Puedes descargar los ejemplos, primero configura Python 3. Después de eso, navega con la terminal hasta donde estén los archivos y ejecuta python leer.py (el nombre del archivo puede cambiar)

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto