Python Sleep(): adding Time Delays to your Code

Posted in Python by Dirk - last update: Jan 10, 2024

The sleep() function in Python is part of the time module and is used to introduce a delay or pause in the execution of a program. It’s particularly useful in scenarios where you want to wait for a specific amount of time before proceeding with the next set of instructions.


import time



  • seconds: The amount of time to sleep, specified in seconds. It can be a floating-point number for sub-second precision.


import time

print("This is printed immediately.")
time.sleep(2)  # Pause for 2 seconds
print("This is printed after a 2-second delay.")

Use Cases

  • Delay Execution: Used when you need to introduce a delay between two operations, like waiting for a resource to become available or pacing requests to an API.

  • Animation or Simulation: In graphical applications, sleep() can be used to control the speed of animations or simulations.



  • Simple to Use: It’s a straightforward way to introduce a delay without complex logic.
  • Cross-platform: Works on various operating systems.


  • Blocking: The sleep() function blocks the entire program during the sleep duration, which might not be suitable for all scenarios, especially in GUI applications or asynchronous code.


  • time.delay() (deprecated): In older versions of Python, you might come across time.delay(). However, this function is now deprecated in favor of time.sleep().

  • threading.Timer: For more complex timing scenarios, you can use the Timer class from the threading module. It allows you to schedule a function to run after a specified amount of time.

  • asyncio.sleep() (for asynchronous code): If you’re working with asynchronous code using the asyncio module, you can use asyncio.sleep() for non-blocking delays.

  • sched' module For more advanced scheduling, the sched module provides a general-purpose event scheduler.


In summary, time.sleep() is a simple and effective way to introduce delays in your Python code, but you should be cautious about potential blocking in certain scenarios. Depending on your use case, consider alternative approaches like threading.Timer or asyncio.sleep() for more flexibility.

Other articles