Таймер обратного отсчета Python

1

Я хочу узнать о таймере в Python.

Предположим, что у меня есть фрагмент кода:

def abc()
   print 'Hi'  
   print 'Hello'
   print 'Hai'

И я хочу распечатать его каждые 1 секунду. Максимум три раза; 1-я секунда мне нужно проверить printf, 2-я секунда мне нужно также проверить на 3-ей секунде.

В моих действительных значениях кода переменная будет обновляться. Мне нужно зафиксировать, во сколько все переменные обновляются.

Может кто-нибудь сказать мне, как это сделать.

  • 0
    Вы хотите напечатать каждую строку с задержкой в n секунд?
  • 5
    ОТ - добрый грейф! Из 68 квестов вы приняли только 29%? Вам / действительно / нужно пойти и принять ответы на больше вопросов!
Теги:
timer
countdown

7 ответов

3
Лучший ответ

Используйте time.sleep.

import time

def abc():
    print 'Hi'
    print 'Hello'
    print 'Hai'

for i in xrange(3):
    time.sleep(1)
    abc()   
  • 1
    в течение 1 секунды мне нужно распечатать. В вышеуказанной программе после задержки в 1 сек. Она была напечатана. Я хочу это в течение 1 сек. Моя программа будет содержать переменные, которые будут обновляться. Я хочу следить за тем, сколько секунд требуется для обновления всех переменных.
8

time.sleep отлично в этом случае, но что делать, если функция abc() занимает полсекунды? Или 5 минут? В этом случае вы должны использовать объект Timer.

from threading import Timer

def abc():
    print 'Hi'  
    print 'Hello'
    print 'Hai'

for i in xrange(3):
    Timer(i, abc).start()
0
import sys
import time

c=':'
sec = 0
min = 0
hour = 0

#count up clock

while True:
for y in range(59):                                                 #hours
    for x in range (59):                                            #min
        sec = sec+1
        sec1 = ('%02.f' % sec)                                      #format
        min1 = ('%02.f' % min)
        hour1= ('%02.f' % hour)
        sys.stdout.write('\r'+str(hour1)+c+str(min1)+c+str(sec1))   #clear and write
        time.sleep(1)
    sec = 0
    sys.stdout.write('\r' + str(hour1) + c + str(min1) + c + '00')  #ensure proper timing and display
    time.sleep(1)
    min=min+1
min = 0
sys.stdout.write('\r' + str(hour1) + c + str(min1) + c + '00')      #ensure proper timing and display
time.sleep(1)
hour=hour+1
  • 0
    Пожалуйста, предоставьте некоторые объяснения о том, как это работает. Дамп кода здесь осуждается.
0

обычно для меня это работает...

import time

def abc():
    print 'Hi'
    time.sleep(1)
    print 'Hello'
    time.sleep(1)
    print 'Hai'
    time.sleep(1)

Думаю, после этого можно догадаться...

0
import time
def abc()
    for i in range(3):
        print 'Hi'  
        print 'Hello'
        print 'Hai'
        time.sleep(1)
0
import time
def abc():
 print 'Hi'
 print 'Hello'
 print 'Hai'

for i in range(3):
 time.sleep(3-i)
 abc()
0

Вы должны посмотреть time.sleep(). Например:

for i in xrange(5):
  abc()
  time.sleep(3)

Это будет печатать ваши строки 5 раз с задержкой в ​​3 секунды.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню