Python Timeit Function Tutorial – Complete Guide

Are you a coder or programming enthusiast looking to boost the efficiency of your code? Have you stumbled upon Python’s timeit function and wondered how you could use it effectively? Well, you’re in the right place!

Unveiling the Python Timeit Function

The Python programming language comes packed with a vast array of functionalities. Among these, the timeit function serves as one of the most practical tools for developers of all skill levels. But what exactly is it?

Simply put, timeit is a built-in Python module that provides a simple yet powerful way to measure the execution time of your Python code. This function is invaluable in scenarios where you need to optimize your python script by identifying bottlenecks.

Timeit is not only for testing how ‘fast’ a piece of code is, but it is a reliable method of checking the efficiency of your code. Think of it as a stopwatch for your code, timing how long specific tasks or operations take to complete.

Why Should You Learn It?

As a Python coder, you might wonder why you should bother learning about the timeit function. Here are some compelling reasons:

  • It allows you to optimize your code for better performance.
  • Helps you make informed decisions when comparing different coding strategies or methods.
  • Essential for both beginner and veteran Python coders wanting to enhance their troubleshooting and optimization skills.

Now that you know what the timeit module is and why you should learn it, let’s delve into some coding tutorials on how you can effectively incorporate this function into your Python coding arsenal.

CTA Small Image

Using Timeit with Built-in Functions

Let’s start with some basic examples, demonstrating the use of timeit with Python’s built-in functions. Here’s a simple way to use it:

import timeit
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))

In this example, timeit is measuring the time it takes to join a string array of numbers from 0 to 99, repeated 10000 times. The output you get will be the total execution time in seconds.

It’s common to use Python’s lambda function in combination with timeit, like this:

import timeit
print(timeit.timeit(lambda: "-".join(str(n) for n in range(100)), number=10000))

Here, we’ve essentially done the same thing as the first example, but we’ve specified the code to be timed as a lambda function.

Using Timeit with Custom Functions

Now, let’s move to something complex. We’ll check how much time a custom function takes to execute using timeit.

import timeit

def custom_function(x):
    return x**2

print(timeit.timeit(lambda: custom_function(10), number=10000))

In the above example, we’re timing how long it takes to compute the square of 10 by calling a custom function. The operation is repeated 10,000 times, and the total execution time in seconds is returned.

We can also measure the speed of a Python list comprehension operation:

import timeit
print(timeit.timeit('[i**2 for i in range(10)]', number=10000))

Here, we’ve timed a list comprehension operation that generates a list of squares for numbers from 0 to 9, repeated 10,000 times.

Learning to effectively utilize the timeit function can be a game-changer in the world of Python programming. The technique of timing your code execution will not only enhance the performance of your code but also provide great insights into your coding efficiency.

Using Timeit with External Libraries

The timeit function isn’t just for built-in or custom Python functions, it can also be used with functions from external libraries. Let’s look at an example using numpy, a popular numerical computation library.

import timeit
import numpy as np

print(timeit.timeit('np.sort(np.random.rand(10))', setup='import numpy as np', number=10000))

In this example, we use timeit to measure the execution time of sorting an array of 10 random numbers using numpy’s sorting function. The operation is repeated 10,000 times.

Timing Multiple Lines of Code

Let’s take things a step further and see how you can time multiple lines of code at once.

import timeit

multi_line_code = """
def custom_function(x):
    return x**2

y = [custom_function(i) for i in range(10)]

print(timeit.timeit(multi_line_code, number=10000))

Here, we’re using timeit to measure the time it takes to execute the entire multi-line code string which includes a function definition and a list comprehension statement. The total execution time of the whole block is returned.

Using Timeit with Python Scripts

Lastly, timeit can be used to time the execution of an entire script. Here’s a simple way to do that:

import timeit

start_time = timeit.default_timer()
# your code here
end_time = timeit.default_timer()

execution_time = end_time - start_time
print(f"Program executed in: {execution_time}sec")

This handy piece of code is measuring the time it takes for the entirety of your code to execute from start to finish by using the default_timer function of the timeit module.

By now, you should have a solid understanding of the mighty power of the Python timeit function. But the real magic begins when you start applying it to your coding projects. Knowing what parts of your code are slowing down your program can save you time and resources in the long run. And who doesn’t want super-efficient code?

Continuing Your Python Journey

Empowering yourself with the timeit function is just the tip of the Python iceberg. There are countless other Python tools, techniques, and methodologies awaiting your discovery. So, how do you continue growing your Python skills?

We invite you to check out our comprehensive Python Mini-Degree at Zenva Academy. This all-inclusive collection of courses covers an impressive range of Python programming topics including coding basics, algorithms, object-oriented programming, game development, and app development.

You’ll get the opportunity to learn Python by getting hands-on, creating your own games, algorithms, and real-world apps. Each course is expertly designed to cater to both beginners and more experienced programmers.

At Zenva, we believe in the power of learning by doing. We provide project-based curriculum that you can add to your portfolio as an impressive credential. More than that, the Python Mini-Degree offers you the convenience to learn at your own pace, reinforcing your learning journey with interactive lessons and engaging coding challenges.

If you’re looking for a more broad spectrum of courses to explore, feel free to check out our collection of Python courses.


In the ever-evolving world of programming, Python continues to cement its spot as a key skill. Whether you’re planning to ply your trade in web development, data analytics, AI, or even game development, Python expertise can take you places. With the knowledge of how to employ Python’s timeit function, you can now aim higher. You can optimize, enhance, and streamline your code to drive your projects forward, be it an entrepreneurial venture, a scholarly endeavor, or just a personal passion.

Investing in your Python knowledge is an investment in your future. Our Python Mini-Degree at Zenva Academy is the ladder that can lead you to your coding zenith. Relish the feeling of accomplishment when you finally publish your own games or apps, illustrated through lines of elegant, well-performing Python code. Your Python journey doesn’t stop here, it’s just the beginning. Let’s get coding!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.