Python – Capítulo 20: La función range()

Artículo tras artículo, nuestro maletín de herramientas de Python va cogiendo peso y disponemos de nuevos recursos para afrontar cualquier desafío de programación. En la entrega de hoy hablaremos de la función range(). Si alguien no entiende aún por qué Python es tan especial, que eche una ojeada a esto.

La función range() es muy simple, pero de una potencia tremenda: genera automáticamente una secuencia con una progresión aritmética.

Puede utilizarse con uno, dos o tres parámetros.

Comencemos por su uso básico con uno sólo:

>>> range(5)
range(0, 5)

Este comando, aunque aparente no haber hecho nada, ha generado una secuencia virtual de números enteros ¿No se ve nada?. Para poder hacer de carne y hueso esta secuencia vamos a convertirla en lista con la función list().

>>> list(range(5))
[0, 1, 2, 3, 4]

Ahora sí, ya vemos de qué madera está hecha: se trata de una progresión aritmética de término inicial 0 y final 4, uno menos que el valor del parámetro especificado.

Incluyamos ahora dos parámetros:

>>> list(range(1,8))
[1, 2, 3, 4, 5, 6, 7]

Cuando especificamos dos valores, el primero es el término inicial. El segundo, al igual que en el ejemplo anterior, constituye el término superior no incluido.

Si indicamos tres parámetros, el tercero supone la diferencia de la progresión aritmética (el incremento):

>>> list(range(1,10,2))
[1, 3, 5, 7, 9]

Es decir se trata de una progresión aritmética que comienza en 1, termina en 9 y en la que cada elemento se obtiene sumando 2 al anterior.

Naturalmente, esto también funciona con enteros negativos:

>>> list(range(-3,10))
[-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

El siguiente programa calcula la suma de todos los números naturales desde el 1 hasta el 1000 (incluido):

suma = 0
for n in range(1001):
    suma+=n
print(suma)

Si lo ejecutamos, obtenemos:

python capitulo20-1.py
500500

Este otro numera automáticamente los elementos de una lista:

# Esta lista ya nos es familiar
semana=['lunes', 'martes', 'miércoles', 'jueves', 
       'viernes', 'sábado', 'domingo']
for n in range(len(semana)):
    print(n+1, semana[n])

Ejecutémoslo:

python capitulo20-2.py

1 lunes
2 martes
3 miércoles
4 jueves
5 viernes
6 sábado
7 domingo

Observad como, en la función print(), he indicado, como parámetro n+1 para que la numeración comience por 1 y no en 0.

Asimilad la función range() y hacedla vuestra. Cada paso que damos nos acerca al objetivo, que no es otro sino ser capaces de hacer practicamente cualquier cosa utilizando Python.

Javier Montero


Python – Capítulo 20: La función range()


Si este artículo te ha parecido interesante y crees que puede ser útil a los demás, considera la posibilidad de compartirlo en tus redes sociales favoritas.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies