sramij
sramij

Reputation: 4925

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
...

Upvotes: 5

Views: 1622

Answers (2)

David Robinson
David Robinson

Reputation: 78620

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)

Upvotes: 14

sberry
sberry

Reputation: 132098

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)

Upvotes: 8

Related Questions