Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does Python's timeit() execute endlessly?

When trying to use the Python built-in module 'timeit' as follows:

timeit.Timer('print "hi"').timeit()

it prints more than one line; why is that? It keeps printing "hi" endlessly:

hi
hi
hi
hi
...
like image 300
sramij Avatar asked Jan 09 '12 06:01

sramij


2 Answers

timeit is designed to test extremely short code snippets, so it runs the code many times and averages them. As a default, it runs it 1000000 times.

You can change this by running it as follows:

timeit.Timer('print "hi"').timeit(number=1)
like image 160
David Robinson Avatar answered Sep 20 '22 11:09

David Robinson


If you look at the docs, you will see that the statement will default to executing 1000000 times.

If you only want to run it 2 times, you would pass a 2 to the timeit() method of the Timer class.

timeit.Timer('print "hi"').timeit(2)
like image 39
sberry Avatar answered Sep 20 '22 11:09

sberry