/
Вопросы и ответы
/
Python
/

Что такое функция sleep в Python?

Что такое функция sleep в Python?

4 года назад

Andrey Moshkov

Ответы

2

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

Пример использования:

1
2
3
4
5
import time

print("Начало задержки")
time.sleep(5)  # Задержка на 5 секунд
print("Конец задержки")

В этом примере программа сначала выводит сообщение "Начало задержки", затем "засыпает" на 5 секунд, после чего выводит сообщение "Конец задержки". В течение времени задержки программа не будет выполнять никаких действий.

Важные моменты:

  • time.sleep принимает в качестве аргумента число, указывающее продолжительность паузы в секундах. Это число может быть целым или с плавающей точкой для указания долей секунды.
  • Во время паузы выполнение программы полностью останавливается на указанный период времени. Это значит, что никакой код не будет выполнен до того, как время паузы истечет.
  • Использование sleep может быть полезно в многопоточных приложениях, где один поток может нуждаться в ожидании определенного события или действия, выполняемого другим потоком.

3 года назад

Elena Gromova

1

Это функция встроенноо модуля time, которая позволяет приостановить выполнение программы заданное время. В качестве аргумента принимаются float и int

time.sleep(secs)

Suspend execution of the calling thread for the given number of seconds. The argument may be a floating point number to indicate a more precise sleep time.

Пример

1
2
3
4
5
import time

time.sleep(3)

print('Этот текст напечатается через 3 секунды ожидания')

4 года назад

Ilia Kaziamov

0

Функция sleep() используется для задержки определённых процессов на указанное время (в секундах).

Синтаксис

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

1
2
3
import time
time.sleep(5)
print('Этот текст напечатается через 5 секунды ожидания')

Простой пример функции sleep()

Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep. Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд. Код выглядит следующим образом:

1
2
3
4
5
6
import time
print('Hello world')
time.sleep(2)
print('sleep python function')
time.sleep(5)
print('sleep function is working')

2 года назад

Алёна Шереметьева

0

time.sleep(секунды) останавливает программу на заданное время. Функция лежит в модуле time:

1
2
3
4
5
import time

print("Начали")
time.sleep(2)        # пауза 2 секунды
print("Прошло 2 секунды")

Время можно задать дробным числом: time.sleep(0.5) — полсекунды.

Примеры

Обратный отсчёт:

1
2
3
4
5
6
import time

for i in range(3, 0, -1):
    print(i)
    time.sleep(1)
print("Старт")

Пауза между запросами к сайту или API, чтобы не получить блокировку за частые запросы:

1
2
3
4
5
6
7
import time
import requests

for page in range(1, 6):
    r = requests.get(f"https://api.example.com/items?page={page}")
    print(page, r.status_code)
    time.sleep(1)

Повтор при ошибке с растущей паузой:

1
2
3
4
5
6
7
8
import time

for attempt in range(5):
    try:
        connect()
        break
    except ConnectionError:
        time.sleep(2 ** attempt)   # 1, 2, 4, 8, 16 секунд

sleep блокирует программу

Пока идёт time.sleep(), текущий поток ничего не делает. В обычном скрипте это нормально. В асинхронном коде, например в Telegram-боте на aiogram или в FastAPI, time.sleep() останавливает обработку всех пользователей сразу. Там используют asyncio.sleep():

1
2
3
4
5
6
7
8
import asyncio

async def main():
    print("Начали")
    await asyncio.sleep(2)
    print("Готово")

asyncio.run(main())

await asyncio.sleep() отпускает управление, и программа в это время обслуживает другие задачи.

Как прервать sleep

Ctrl + C в терминале прерывает паузу исключением KeyboardInterrupt:

1
2
3
4
5
6
import time

try:
    time.sleep(60)
except KeyboardInterrupt:
    print("Остановлено")

Точность

sleep гарантирует паузу не меньше заданной. Реальная пауза может быть на несколько миллисекунд длиннее: это зависит от загрузки системы. Чтобы замерить время выполнения кода, используйте time.perf_counter():

1
2
3
4
5
import time

start = time.perf_counter()
time.sleep(0.25)
print(round(time.perf_counter() - start, 2))  # => 0.25

Модули стандартной библиотеки разбирают в бесплатном курсе «Основы Python», asyncio — на курсе «Асинхронность в Python».

18 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845