2013-04-23 6 views
1

저는 분과 초를 계산하는 타이머를 코딩하고 있습니다. Enter 키를 누르면 타이머를 일시 중지 할 수 있습니다. 그러나 타이머를 실제로 카운트하고 추가하기 위해 while 루프를 사용하고 있습니다. raw_input/input은 루프를 멈출 것입니다 ... 두 함수가 동적으로 실행되도록하려면 어떻게해야합니까? 지금까지사용자가 입력 할 때까지 파이썬 루프를 실행하는 방법? 타이머 형식

내 코드 :

내가 만든 시계의 수정 된 복사본을 사용하고 있기 때문에 일부 불필요한 수입이
from datetime import datetime 
import math 
#import subprocess 
import sys 
import time 
import os 

sys.stdout.write("\x1b[8;{rows};{cols}t".format(rows=24, cols=60)) 

t1 = 0 
t3 = 0 

def space(): 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 
    print(" ") 

while t1 != 1.1: 

    os.system('clear') 

    t2 = str(t1) 
    t4 = str(t3) 

    space() 

    print('*')*60 
    print "James Balazs' Python Timer".center(60,"-") 
    print ("Passed time: " + t4 + " minutes and " + t2 + " seconds").center(60, " ") 
    print('*')*60 

    t1 = t1 + 1 
    time.sleep(1) 
    if t1 == 60: 
     t1 = 0 
     t3 = t3 + 1 

... 그래서 모든 도움이 많이 나는하지 않는 한 감사 이 일을 가능하게하기 위해 대부분의 일을 파괴하십시오.

+0

당신이 사용하고 계십니까? –

답변

0

타이머를 사용하여 함수를 만들고 입력을 요청하는 동안 threading을 사용하여 실행하십시오. 그런 다음 kill it을 누르면 사용자가 엔터를 누릅니다.

import threading 
def timer(): 
    #Timer goes here 
Thread(target = timer).start() 
raw_input("Press enter to stop") 
#Kill the thread 

또한 살해에 관한 내용은 http://mail.python.org/pipermail/python-list/2004-May/281943.html을 참조하십시오.

관련 문제