5. Ciclo "for"

5.1. Función range(start, stop, step)

La función "range( )" devuelve una secuencia de números enteros a partir de un inicio (cero por defecto) hasta un valor final especificado, en pasos enteros (uno por defecto).

La sintaxis de la función range( ) es la siguiente:


Algunas observaciones a tener en cuenta de la función range( ) son:

    • Cada argumento (inicio, fin y paso) van separados por comas.
    • Solo es necesario especificar un argumento (fin), el resto la función toma los valores por defecto (inicio = 0 y paso = 1).
    • Se puede especificar dos argumentos, en ese caso la función considera que los argumentos que se están ingresando son el inicio y el fin, por lo tanto toma el valor de paso por defecto.
    • En caso de no recordar el orden de los argumento se puede utilizar la regla mnemotécnica INFINITO INCREMENTO: INicio, FINito, INCREMENTO.
    • El último valor de la secuencia generada es igual al valor de "fin" menos el "paso".

A continuación veremos ejemplos del uso de la función range( ).

Función range(inicio, fin, paso) con tres argumentos

En el siguiente ejemplo se observa el uso de la función con tres argumentos, en conjunto con la sentencia "for"


La salida de este código es:


donde podemos realizar la siguiente observación:

    • El programa muestra por pantalla 2 números, correspondientes al valor de inicio especificado como argumento y el valor final menos el paso, datos que también fueron pasados como argumento a la función.
pp
      • ¿Qué salida se tiene si range(5, 25, 5)?.

Función range(inicio, fin) con dos argumentos

En el siguiente ejemplo se observa el uso de la función con dos argumentos, en conjunto con la sentencia "for"


La salida de este código es:


donde podemos realizar las siguientes observaciones:

    • Al especificar 2 argumentos tomó por defecto solamente el valor del paso.
    • El programa muestra por pantalla 4 números, que es igual al valor de "fin" menos "inicio".
    • El primer valor mostrado es 1, que es el valor de inicio pasado como argumento a la función.
pp
      • ¿Qué se mostraría por pantalla si range(2, 10)?.
      • ¿Y si range(2, 2)?.
      • ¿Cómo sería la salida del código si el valor de inicio es mayor que el de fin?, por ejemplo: inicio = 10 y fin = 2.
      • ¿Cuántas veces se ejecuta el ciclo "for" en este último caso?. Tiene sentido la salida?.

Función range(fin) con solo un argumento

En el siguiente ejemplo se observa el uso de la función con un solo argumento, en conjunto con la sentencia "for"


La salida de este código es:


donde podemos realizar las siguientes observaciones:

    • Al especificar solo un argumento tomó por defecto como inicio el valor 0, y como paso el valor 1
    • El programa muestra por pantalla 5 números, que es igual al valor pasado como argumento a la función range( ).
    • El último valor mostrado es el 4, que es igual al valor del argumento menos el paso.

Función range( ) con paso negativo o decremento

Con la función "range( )" también se puede generar una secuencia de números cuyo valor se vayan decrementando. Para ello el "inicio" debe ser mayor que el "fin" y se debe especificar el paso negativo como se muestra a continuación.


siendo la salida del programa la siguiente:



pp

        • Si el valor del paso es -6, ¿Qué salida se obtiene?.
        • Si el paso es 2, ¿Qué salida se obtiene?.
        • Si no se especifica el paso, ¿Qué salida se obtiene?.
        • ¿Es cierto que cuando quiero obtener una secuencia negativa tengo que cargar si o si los tres argumentos de la función range( )?. ¿Por qué?.