🔍 La función range() y los objetos iterables

💡 Más allá de los números

Ya aprendimos que range() nos permite generar secuencias de números.
Pero… ¿qué tipo de objeto devuelve realmente esta función? 🤔
Y, ¿qué otras cosas podemos recorrer con un for?

🔍 Verificando el tipo de un valor

print(type(5))

⬇️ Salida:

<class 'int'>

💬 Este es un entero (int), un tipo de dato primitivo.

⚙️ ¿Y qué tipo devuelve range()?

print(type(range(5)))

⬇️ Salida:

<class 'range'>

💡 range() devuelve un objeto de tipo rango, que no es un número ni una lista, sino un objeto iterable.

🧠 ¿Qué significa “iterable”?

Un objeto iterable es aquel que puede recorrerse paso a paso. Podemos usarlo dentro de un for para ejecutar un bloque repetidamente.

🔁 Ejemplo con range

for x in range(3):
    print(x)

⬇️ Salida:

0
1
2

🔄 En cada iteración, x toma un valor del objeto range.

🧵 Otros objetos iterables

Las cadenas (strings) también son iterables:

for letra in "Python":
    print(letra)

⬇️ Salida:

P
y
t
h
o
n

💬 Cada vuelta del bucle nos da un carácter de la cadena.

🧱 Y también las listas

nombres = ["Ana", "Luis", "Danna"]

for nombre in nombres:
    print("Hola", nombre)

⬇️ Salida:

Hola Ana
Hola Luis
Hola Danna

🧠 Las listas son iterables que pueden contener valores heterogéneos: números, cadenas, objetos, o incluso otras listas.

🧩 En general…

Cualquier objeto iterable puede usarse dentro de un bucle for. Esto incluye:

Tipo Ejemplo Descripción
range range(5) Secuencia de enteros
str "Python" Cadena de texto
list [1, 2, 3] Lista de elementos
tuple (a, b, c) Tupla inmutable