14. La función range()

range(start, stop, step)

La función range() sirve para crear un rango de números en un bucle for. Tiene tres parámetros con valores por omisión, por lo que puede tener uno, dos o tres argumentos.

Con tres argumentos:

  • start es el primer número entero por el que comienza el rango.
  • stop es el número que finaliza el rango. Nunca se llega a ese valor.
  • step es el valor que se va añadiendo a start para conseguir los números consecutivos.

Ejemplo:

>>> # comenzando en 2, parar en 20, saltando de 3 en 3
>>> for i in range(2, 20, 3):
...     print(i)
...
    2
    5
    8
    11
    14
    17

>>> # comenzando en 100, parar en 0, saltando de -10 en -10
>>> for i in range(100, 0, -10):
...     print(i)
...
    100
    90
    80
    70
    60
    50
    40
    30
    20
    10

Con dos argumentos:

  • Solo se utilizan los parámetros start y stop.
  • El parámetro step se supone igual a uno.

Ejemplo:

>>> for i in range(5, 11):
...     print(i)
...
    5
    6
    7
    8
    9
    10

>>> for i in range(-6, 3):
...     print(i)
...
    -6
    -5
    -4
    -3
    -2
    -1
    0
    1
    2

Con un argumento:

  • El argumento se copia en el parámetro stop.
  • El parámetro start se supone igual a cero.
  • El parámetro step se supone igual a uno.

Ejemplo:

>>> for i in range(6):
...     print(i)
...
    0
    1
    2
    3
    4
    5

>>> for i in range(3):
...     print(i)
...
    0
    1
    2

Como el rango comienza en el número cero, el número de elementos del rango será igual al número que escribimos dentro de la función rango.

Ejercicios

  1. Escribe un programa que imprima todos los números pares entre el 2 y el 20, ambos incluidos.

  2. Escribe un programa que imprima todos los números impares entre el 1 y el 19, ambos incluidos.

  3. Escribe un programa que imprima una cuenta atrás que comience imprimiendo 10 y que acabe imprimiendo 0.

  4. Escribe un programa que escriba el siguiente listado:

    50
    45
    40
    35
    30
    25
    20
    
  5. Escribe un programa que escriba el siguiente listado:

    -50
    -45
    -40
    -35
    -30
    -25
    -20
    
  6. Escribe un programa que sume todos los primeros 'n' números impares y comprueba que el resultado es igual al cuadrado de 'n'.

    Pista:

    num = input('Introduce cuántos impares sumaremos: ')
    num = int(num)
    
    suma = 0
    for ... in range(1, num*2, ... ):
        suma = ...
    
    print('La suma de los', num, 'primeros impares es igual a', suma)
    print('El cuadrado de', num, 'es igual a', num*num)