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