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 <[email protected]>: > 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 <[email protected]> escribió: > >> El día 26 de diciembre de 2012 21:26, Chema Cortes <[email protected]> >> escribió: >> > El día 26 de diciembre de 2012 21:22, Chema Cortes <[email protected]> >> > 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 >> [email protected] >> 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 > [email protected] > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
