[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