Python Basics (II)

 

La Función range()Aunque ya vimos en el post Python Basics (I) la aplicación básica de la función range() en el ejemplo:

for i in range(1,3):

print(i)


Quiero explicar que podemos hacer muchas más cosas con ésta función. Por ejemplo: ¿cómo recorreríais un array cogiendo sólo los valores en posiciones pares? es decir: pongamos que tenemos un array de 10 elementos y queremos pillar sólo los elementos en las posiciones 0,2,4,6 y 8 (recordemos que en python, como en muchos otros lenguajes, los arrays empiezan en 0). Si, consideramos la posición 0 para que el ejemplo sea más sencillo.

La forma de hacerlo si sólo conocemos el uso de range() del ejemplo anterior sería algo como ésto:

for i in range(len(mi_array)):

if par(i):

print mi_array[i]

Peeeero, si sabemos utilizar bien la función range() podemos hacerlo así:

for i in range(0,len(mi_array),2):

print i

Y obtendremos el mismo resultado: los valores de las posiciones pares del array.

La explicación viene porque al llamar a range() así: range(valor_1, valor_2, valor_3) lo que le estamos diciendo es: “recorre mi_array desde la posición valor_1 hasta la posición valor_2 incrementando en vez de en 1, en valor_3″. En nuestro caso particular: “recorre mi_array desde la posición 0 hasta la posición longitud_de_mi_array incrementando de dos en dos el valor de i”.

La verdad es que no es nada del otro mundo, pero me ha llamado la atención y me parece bastante útil para según que casos.

  1. Yo aún no me he metido a programar en python (demasiadas cosas ya para mi), pero tu explicación es aplicable a todos los lenguajes de programación. Hay que buscarles las cosquillas, porque en temas de optimización, en muchas ocasiones siempre hay una forma mejor de hacerlo.

  2. No te creas que esa forma de usar el range() se puede usar en todos los lenguajes de programación. Depende de si tienen esa función implementada o no.

    Yo no estoy buscándole las cosquillas a python, estoy siguiendo varios tutoriales/manuales que he encontrado y voy anotando aquí lo que me parece interesante para ir aprendiendo éste lenguaje (y para que no se me olviden!) xDDD

    Pero, bueno, alguna cosilla iré poniendo más, que yo tampoco tengo casi tiempo, el próximo día toca el tema de definición de funciones que parece que tienen alguna que otra cosilla interesante😀

    Mi objetivo es, después de darle un meneo general al lenguaje para defenderme un poco con él, ponerme con PyGTK y con PyS60 que es lo que más me llama la atención para poder hacerme alguna que otra aplicación.

    • David
    • 23/12/07

    A todo esto…, hay algún entorno de desarrollo que esté bien para python?

  3. Buena pregunta… xDDD

    Yo de momento he probado eclipse con pydev (no está mal, si te gusta eclipse claro) y el editor de texto de gnome xD

    No lo sé, algún día tocará mirar lo que hay, pero de momento estoy tirando de eclipse.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: