Как добавить задержку в python
Перейти к содержимому

Как добавить задержку в python

  • автор:

Как добавить в программу задержку

Задержку в работе программы добавляет функция sleep . Следующая программа выводит на экран две надписи с задержкой в секунду:

print("До паузы") sleep(1) print("После паузы") 

В консоли сначала отобразится первая надпись:

До паузы 

И через секунду вторая:

До паузы После паузы 

Чтобы программа заработала, в начало файла с кодом добавьте волшебную строку:

from time import sleep 

Эта строка сообщает Python, что функцию sleep надо искать в библиотеке time . Если этого не указать, то Python сам её не найдет.

В программе достаточно одной строки from time import sleep , даже если в коде несколько вызовов sleep . Вот полный код программы:

from time import sleep print("До паузы") sleep(1) print("После паузы") sleep(1) print("После второй паузы") 

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Функция time sleep() в Python

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

Синтаксис

sleep() – это метод модуля времени в Python. Итак, сначала мы должны импортировать модуль времени, затем мы можем использовать этот метод. Способ использования функции sleep():

Способ использования функции sleep()

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

# importing time module import time print("Before the sleep statement") time.sleep(5) print("After the sleep statement")

Если вы запустите приведенный выше код, вы увидите, что вторая печать выполняется через 5 секунд. Таким образом, вы можете отложить свой код по мере необходимости.

Аргумент может иметь плавающее значение для более точной задержки. Например, вы хотите сделать задержку на 100 миллисекунд, что составляет 0,1 секунды, как показано ниже:

import time time.sleep(0.100)

Пример

Давайте посмотрим на следующий пример функции sleep в Python.

import time startTime = time.time() for i in range(0,5): print(i) # making delay for 1 second time.sleep(1) endTime = time.time() elapsedTime = endTime - startTime print("Elapsed Time = %s" % elapsedTime)
0 1 2 3 4 Elapsed Time = 5.059988975524902

Прошедшее время больше 5, потому что каждый раз в цикле for выполнение останавливается на 1 секунду. Дополнительное время связано со временем выполнения программы, планированием потоков операционной системы и т.д.

Различное время задержки сна

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

import time for i in [ .5, .1, 1, 2]: print("Waiting for %s" % i , end='') print(" seconds") time.sleep(i)
Waiting for 0.5 seconds Waiting for 0.1 seconds Waiting for 1 seconds Waiting for 2 seconds

Эффектная печать с использованием sleep()

Возможно, вам придется напечатать какое-нибудь сообщение необычным образом, вы можете сделать это так:

# importing time module import time message = "Hi. I am trying to create suspense" for i in message: # printing each character of the message print(i) time.sleep(0.3)

Если вы запустите приведенный выше код, вы увидите, что после печати каждого символа сообщения требуется некоторое время, что кажется эффектным.

Метод при многопоточности

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

import time from threading import Thread class Worker(Thread): def run(self): for x in range(0, 11): print(x) time.sleep(1) class Waiter(Thread): def run(self): for x in range(100, 103): print(x) time.sleep(5) print("Staring Worker Thread") Worker().start() print("Starting Waiter Thread") Waiter().start() print("Done")

На изображении ниже показан результат, полученный в приведенном выше примере.

Как на python’е сделать задержку программы?

Тут я сделал нечто похожее на игру жизнь. Хочу чтобы программа выполнялась автоматически несколько ходов (кол-во ходов мы забираем из тестового поля). Например, ввели число «5», и программа начала делать 5 шагов, при этом выводя каждый на экран. Всё это обрабатывается в функции

def step_while(): steps = int(ent_steps.get()) for i in range(steps): root.after(700, step) root.update()

Хочу задержу программы на определённом моменте, но она почему-то показывает сразу конечный результат(без задержки на каждом шаге). Пробовал также функцию sleep(), но тогда программа просто зависает. Помогите начинающему программисту, если меня можно так назвать. Заранее спасибо

  • Вопрос задан более трёх лет назад
  • 6508 просмотров

1 комментарий

Простой 1 комментарий

5c3ce13e5fb3e917264426.png

круто, конечно, что Вы привели код, но его читаемость на нуле 🙁
используйте форматирование, пожалуйста

Решения вопроса 0
Ответы на вопрос 1
Недопрограммист
Или как вариант, чтобы не фиксировать время пользователя можно так.

import time def step_while(): steps = int(ent_steps.get()) for i in range(steps): root.after(700, step) root.update() #time.sleep(2) пауза 2 сек. input('Для завершения программы нажмите Enter . ')

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python

Палиндромы leetcode, в VS все правильно, на сайте другой ответ, что делать?

  • 1 подписчик
  • 2 часа назад
  • 50 просмотров

Python. Как сделать задержку, не заморозив программу?

При использовании time.sleep(x), вся программа останавливается. Я же делаю бота, в котором после каждого действия нужно ждать. Ты же не можешь работать весь день без остановки? Нет, не можешь. После каждой работы нужно будет отдохнуть 1 реальный час. Но time.sleep(x) останавливает ВСЮ программу, и после каждой работы никто не может пользоватся ботом. Как сделать задержку, без заморозки программы?

Отслеживать
задан 23 сен 2020 в 14:04
TheNick — Ник TheNick — Ник
158 1 1 серебряный знак 17 17 бронзовых знаков
Запоминать время последнего запроса от каждого пользователя и проверять его, например.
23 сен 2020 в 14:13

Объясни понятнее. Если бот должен не работать, а его-то ждать, то какая разница, могут им пользоваться или нет, если пользоваться им все равно нельзя. Ведь нужно отдохнуть реальный час.

23 сен 2020 в 14:14
Надо же, первый раз вижу такую трогательную заботу о том, чтобы бот не переутомился.
23 сен 2020 в 14:21

@strawdog к сожалению, это не для бота 🙁 Мой бот игровой, так сказать «симулятор жизни», и чтобы человек не злоупотреблял и не спамил командой чтобы получить много денег, надо сделать отдых

23 сен 2020 в 14:26

По идее у Вас для каждой команды есть обработчик. В нем можно получить время запроса и при повторе команды вычитать его из текущего. Если итог меньше часа то программа должна дать отказ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *