[Python-es] Pythoniano y c niano
Daπid
davidmenhur en gmail.com
Jue Dic 27 00:50:24 CET 2012
Más fácil:
import time
t0 = time.time()
[...]
dt = time.time() - t0
print int(dt / 3600), ':', int(dt % 3600 / 60), ':', dt % 60
Si quieres, puedes meter eso en un decorador, pero yo lo uso
directamente. Así puedo medir tanto las funciones como el resto del
proceso.
2012/12/26 monoBOT <monobot.soft en gmail.com>:
> Para medir el tiempo de proceso yo uso lo siguiente:
>
> #! / usr / bin / env python
> # -*- coding: iso-8859-1 -*-
>
> import time
>
>
> def inicio():
> '''establece el tiempo de incio del proceso
> sin variables, sin salida'''
> return time.time()
>
>
> def final(t_inicio):
> '''define el final del proceso, devuelve el tiempo transcurrido en dias,
> horas minutos \n
> y segundos (estos con 4 decimales de precision)
> sin variables, salida por pantalla'''
> tsecs = (time.time() - t_inicio)
> if tsecs > 60:
> if tsecs >= 3600:
> if tsecs >= 86400:
> print 'Tiempo de proceso:'
> print ' % d dias, % d horas, % d minutos, % .4f
> segundos.' % (((tsecs / 86400)), (
> (tsecs % 86400) / 3600), ((tsecs % 86400) % 3600
> / 60), ((tsecs % 3600) % 60))
> else:
> print 'Tiempo de proceso:'
> print ' % d horas, % d minutos, % .4f segundos.' %
> (((tsecs / 3600)), (
> (tsecs % 3600) / 60), ((tsecs % 3600) % 60))
> else:
> print 'Tiempo de proceso:'
> print ' % d minutos, % .4f segundos.' % (((tsecs % 3600) / 60),
> ((tsecs % 3600) % 60))
> else:
> print 'Tiempo de proceso:'
> print ' % .4f segundos.' % ((tsecs % 3600) % 60)
>
>
> def calc_tiempo(f):
> '''
> @funcionamiento: funcion decoradora que calcula el tiempo de ejecución
> de una funcion
> '''
> def decor(*args, **kwargs):
> ini = inicio()
> res = f(*args, **kwargs)
> final(ini)
> return res
> return decor
>
>
> @calc_tiempo
> def prim(n):
> if n == 1:
> return False
> if n == 2 or n == 3:
> return n
> max = int(n ** 0.5) + 1
> for m in xrange(2, max):
> if n % m:
> if m == int(n ** 0.5):
> return n
> else:
> return False
>
> prim(129939999499359499)
>
>
> Me gustaria escuchar lo que los verdaderos gurus piensan, saludos!
>
>
> El 26 de diciembre de 2012 20:31, Chema Cortes <pych3m4 en gmail.com> escribió:
>
>> El día 26 de diciembre de 2012 21:26, Chema Cortes <pych3m4 en gmail.com>
>> escribió:
>> > El día 26 de diciembre de 2012 21:22, Chema Cortes <pych3m4 en gmail.com>
>> > escribió:
>> >
>> >> en una sóla línea:
>> >>
>> >> def fprimos(n,x):
>> >> return [x for x in range(n,x) if all(n%k!=0 for k in range(2,n))]
>> >
>> > He copiado y pegado muy rápido. La versión correcta:
>> >
>> > def fprimos(n,x):
>> > return [x for x in range(n,x) if all(x%k!=0 for k in range(2,x))]
>>
>> Ibídem :P
>>
>> def fprimos(n,x):
>>
>> def isprime(p):
>> return all(p%k!=0 for k in range(2,p))
>>
>> return [i for i in range(n,x) if isprime(i)]
>>
>>
>> def fprimos(n,x):
>> return [i for i in range(n,x) if all(i%k!=0 for k in range(2,i))]
>>
>>
>> Siento la confusión.
>>
>> --
>> Hyperreals *R: http://ch3m4.org/blog
>> Quarks, bits y otras criaturas infinitesimales
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> --
> monoBOT
> Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
Más información sobre la lista de distribución Python-es