Функция time.sleep() в Python
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

Функция sleep() из модуля time предоставляет возможность задержать выполнение кода на определенное время в секундах. Фактически - sleep() останавливает выполнение потока, но не всей программы в целом.

Синтаксис:

import time

time.sleep(secs)

Аргументы:

  • В качестве аргумента secs передаем кол-во секунд в целочисленном значении int.

Пример как это работает:

import time

start_time = time.time()
print('Старт', start_time)
time.sleep(5)
end_time = time.time()
print('Конец', end_time - start_time)

Результат:

>>> Старт 1666202910.396888
>>> Конец 5.0018227100372314

Между принтами мы установили задержку в 5 секунд, и проверили с помощью модуля метода time.time() работу time.sleep().

Если мы хотим задать задержку в миллисекундах, то например вместо 1 надо писать 0.100:

import time

start_time = time.time()
print('Старт', start_time)
time.sleep(0.100)
end_time = time.time()
print('Конец', end_time - start_time)

Результат:

>>> Старт 1666202990.3929803
>>> Конец 0.1011192798614502

Иногда возможно Вам пригодится задержка на разное время в секундах, это можно сделать следующим образом:

import time

for sec in [.5, .1, 1, 2]:
    print(f'Ожидание в секундах: {sec} секунд')
    time.sleep(sec)

Результат:

>>> Ожидание в секундах: 0.5 секунд
>>> Ожидание в секундах: 0.1 секунд
>>> Ожидание в секундах: 1 секунд
>>> Ожидание в секундах: 2 секунд

Также time.sleep() важен для использования в многопоточности Python. Ниже пример, где показано, что time.sleep() останавливает определенный поток на заданное время.

import time
from threading import Thread


class Worker(Thread):
    def run(self):
        for x in range(0, 11):
            print(f'Поток с ожиданием в 1 секунду: {x}')
            time.sleep(1)


class Waiter(Thread):
    def run(self):
        for x in range(10, 16):
            print(f'Поток с ожиданием в 5 секунд: {x}')
            time.sleep(5)


print('Запуск потока: Worker!')
Worker().start()
print('Запуск потока: Waiter!')
Waiter().start()

Результат:

>>> Запуск потока: Worker!
>>> Поток с ожиданием в 1 секунду: 0
>>> Запуск потока: Waiter!
>>> Поток с ожиданием в 5 секунд: 10
>>> Поток с ожиданием в 1 секунду: 1
>>> Поток с ожиданием в 1 секунду: 2
>>> Поток с ожиданием в 1 секунду: 3
>>> Поток с ожиданием в 1 секунду: 4
>>> Поток с ожиданием в 5 секунд: 11
>>> Поток с ожиданием в 1 секунду: 5
>>> Поток с ожиданием в 1 секунду: 6
>>> Поток с ожиданием в 1 секунду: 7
>>> Поток с ожиданием в 1 секунду: 8
>>> Поток с ожиданием в 1 секунду: 9
>>> Поток с ожиданием в 5 секунд: 12
>>> Поток с ожиданием в 1 секунду: 10
>>> Поток с ожиданием в 5 секунд: 13
>>> Поток с ожиданием в 5 секунд: 14
>>> Поток с ожиданием в 5 секунд: 15
Теги записи: Python, Основы Python, time,
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)