[pyar] control bucle while

Cristhian Boujon cristhianboujon en gmail.com
Jue Feb 15 15:20:52 -03 2018


Hola Fabrizio,

Me sumo a la respuesta de Carlos. No es una buena práctica modificar los
parámetros pasados a una función. Pensá que podrías llegar a usar ese valor
que se pasó inicialmente y no lo vas a poder recuperar si lo modificas
previamente. Por lo tanto, entre las dos opciones que planteas, eligiría la
segunda.

Por otro lado, tal vez sea porque la simplificación de tu código, pero si
no utilizas el contador para nada dentro del loop, en innecesario que lo
mantengas. Dentro del loop, podrías estar manejando la lógica de corte con
un break
<https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops>
.

Saludos!


---
*If you want to know more about me, you can check:*
* <http://github.com/Overflow012>
<https://medium.com/@cristhianboujon>*  *[image:
https://www.linkedin.com/in/cristhian-boujon/]
<https://www.linkedin.com/in/cristhian-boujon/> *


2018-02-15 14:25 GMT-03:00 Carlos Matías <cmdelatorre en gmail.com>:

> Fabrizio, en mi opinión en un caso tan simple realmente no hay una opción
> *definitivamente* mejor que otra.
>
> Dicho eso, pienso que por lo general no está bueno modificar los
> argumentos de las funciones. En el caso de argumentos *mutables*, como
> lists, dicts y objetos, eso tiende a ocasionar errores. Pero justo en el
> caso de tipos simples (como números) no pasa nada. Te sugiero que leas
> esto: https://stackoverflow.com/a/986145/1161156
>
> O sea, es importante que entiendas cómo se pasan/manejan los parámetros de
> las funciones en Python.
>
>
> Carlos Matías
> @py_litox <https://twitter.com/py_litox>
>
> 2018-02-15 11:16 GMT-03:00 Fabrizio Damicelli <fdlafert en hotmail.com>:
>
>> Hola Gente!
>> pregunta cortita y al pie para los interesados en el problema P-NP (que
>> nada tiene que ver con compejidad computacional, [1]):
>> Pongo directamente un ejemplo simplificado. Qué versión les parece más
>> linda/pythonica/elegante/etc.:
>>
>> def hacer_algo_n_veces(n=10):
>>     while n:
>>         #intentar hacer algo
>>         #si funciona:
>>             n -= 1
>>
>> def hacer_algo_n_veces(n=10):
>>     contador = 0
>>     while contador < n:
>>         #intentar hacer algo
>>         #si funciona:
>>             contador += 1
>>
>> O sea, contador explícito o no. Asuman que el "while" no puede ser
>> reemplazado por un "for" (porque el número de intentos de "hacer algo" no
>> es conocido de antemano y es posible que haya que intentar muchas veces)
>>
>>
>> Ya se que "Explicit is better than implicit", pero no estoy seguro que la
>> primera variante sea tan implícita..en fin :)
>>
>> Mil gracias!
>>
>> Saludos
>>
>> Fabrizio
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [1] https://www.youtube.com/watch?v=wf-BqAjZb8M   (minuto 12:50)
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180215/badf3a7a/attachment.html>


Más información sobre la lista de distribución pyar