[Python-es] Pythoniano y c niano

lasizoillo lasizoillo en gmail.com
Mie Dic 26 19:20:28 CET 2012


El día 26 de diciembre de 2012 18:31, kausdiv <kausdiv en gmail.com> escribió:
> Muchas gracias a todos. He aprendido mucho.
> Chema, precisamente me refería a esa forma de escribir en python. Gracias.
>
> Una pregunta: ¿ como hacéis para medir el tiempo de ejecución de una función
> ? Sabia hacerlo en Pascal pero no en PY.

Con ipython tienes el comando timeit, que puesto delante de una linea
de python te hace una estimación del tiempo que tarda en ejecutarse.

Para un ajuste más fino uso un profiler:
http://docs.python.org/2/library/profile.html
http://pypi.python.org/pypi/pyprof2calltree/

>
> Y una sugerencia: ¿ que os parece organizar un concurso sobre un el programa
> py más rápido en calcular los primeros 1.000.000 de número primos ?
>

Sería aburrido definir las restricciones. ¿Está permitido cython,
numpy, ctypes y modulos en c, pypy, ...?

Luego habría que definir un lugar donde ejecutar las pruebas. No todos
los pythons tienen las mismas opciones de compilación y eso puede
afectar al ranking de los programas. Lo que en tu máquina con una
versión es más rápido en la de otro con otra versión puede ser más
lento y vice versa.

> ¿ Recordáis hace años aquellos concursos en c y ensamblador de 3Kb. lo que
> conseguían hacer ? Yo tenia uno que recreaba un paisaje marciano y solo
> ocupaba 3kb. (creo recordar)
>

Lo recuerdo con cariño, pero cuando he visto code golf[1] me irrita
bastante. Para programar con ese espiritu prefiero los
microcontroladores, no el usar malas practicas sobre un lenguaje
bonito.

[1] http://codegolf.stackexchange.com/questions/54/tips-for-golfing-in-python

Quizá te interese participar en http://projecteuler.net/ Tiene un
montón de retos matemáticos que se resuelven mediante programación. Es
una forma entretenida de ir aprendiendo los dos a la vez.

Un abrazo,

Javi


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