lina wrote: > On Sat, Dec 10, 2011 at 6:09 PM, Peter Otten <__pete...@web.de> wrote: >> surya k wrote: >> >>> Finding factorial of 8 or 9 isn't big. If I would like to find factorial >>> of 32327, how can I ? >> >> gmpy is a library designed for working with large numbers. Compare: >> >>>>> import time >>>>> def bench(f, *args): >> ... start = time.time() >> ... try: >> ... return f(*args) >> ... finally: >> ... print time.time() - start >> ... >>>>> def fac(n): >> ... f = 1 >> ... for i in xrange(1, n+1): >> ... f *= i >> ... return f >> ... > > sorry to interrupt, I tried your example, > > $ cat time_func.py > #!/usr/bin/python3 > > import time > > def bench(f, *args): > start = time.time() > try: > return f(*args) > finally: > print(time.time() - start) > > def fac(n): > f = 1 > for i in range(1,n+1): > f *= i > return f > > on idle3 > >>>> import time_func >>>> time_func.bench(time_func.fac,1000) > 0.0015549659729003906 > 402...[snip many digits]...000 > > why the output so long,
bench() calls the function passed as its first argument with the arguments that follow, prints the time this function takes and returns the result of the function call. In the case of bench(fac, 1000) that result is fac(1000), or 1*2*3*4*...*997*998*999*1000 -- a number with 2568 digits. To avoid printing out these huge numbers I assigned them to x >>>>> x = bench(fac, 1000) >> 0.00276589393616 Therfore you only see the time in seconds which is printed rather than returned by bench(). _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor