while True

Arnau Sanchez arnau en ehas.org
Jue Nov 9 06:18:23 CET 2006


tny escribió:
> Acepto que desde el punto de vista del desarrollo sea más cómodo y clara
> lo del 'while True:' pero punto de vista de la ejecución prefiero lo de
> 'x=loquesea\nwhile x:' 
>
> Tal vez para enviar un archivo no tenga mucha importancia, pero si puedo
> escoger me quedo con la opción más rápida. 
>
> Ejemplo.
> ....
> ....
> prueba1 tardo 4 segundos
> prueba2 tardo 6 segundos
>
>   
Indiscutiblemente la primera opción será siempre la más rápida. Pero esa 
relación 4/6 que obtienes -para hacer un control más fino del tiempo 
puedes usar time.time()- no es del todo realista, ya que ése es el peor 
de los casos (el bucle no hace nada). En general, el tiempo dedicado al 
proceso de los datos será mucho mayor que el del control del bucle, y la 
mejora que obtengas será casi despreciable.

En cualquier caso, en este tema soy muy parcial: tiendo a primar 
claridad frente a velocidad, y mucho más en Python, que es un lenguaje 
que te obliga a ello de forma natural. Sólo si compruebo que esa 
preciosa y estilada función es el cuello de botella de mi script 
intentaré optimizarla (ya sabes, el famoso "premature optimization is 
the root of all evil")

En este caso concreto, como dice el FAQ, la cuestión es que repetir esa 
línea es una fuente de errores: si cambias la forma en que obtienes los 
datos es probable que te olvides de modificar una de ellas (más aquí, 
que quedan en extremos opuestos del bucle). En general, si repito líneas 
(o trozos de codigo) en un programa considero que algo no anda bien.

Y por último, apelaré al resbaladizo argumento de autoridad: el código 
de la librería oficial de python está plagado de bucles while True/if 
not condition/break. ;-)
> No pretendo discutir por discutir, mi intención es que podamos aprender
> todos un poco, 
Por supuesto, de eso se trata. Aunque si no participa nadie más será que 
no interesa mucho, y si te parece lo dejamos en empate :-)
> que me saquéis de mi error si estoy equivocado, y mostrar
> el verdadero camino de la serpiente si soy un iluminado del fósforo
> verde. XD
>   
Pues si tengo que ser yo quien te muestre el verdadero camino de la 
serpiente, que aterricé por casualidad, con un triple salto mortal, 
desde el ensamblador x86 directamente en Python... :-D

salud
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es