1

分と秒をカウントするタイマーをコーディングしています。Enter キーを押したときにタイマーを一時停止できるようにしたいのですが、while ループを使用してタイマーを実際にカウントさせ、raw_input/input を追加しています。ループを停止します... 2つの関数を動的に実行するにはどうすればよいですか-一緒に、しかし別々に?

これまでの私のコード:

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

いくつかの不必要なインポートは、私が作成した時計の変更されたコピーを使用しているためです...したがって、これを可能にするために私の作品の大部分を破壊する必要がない限り、すべての助けが大歓迎です。

4

1 に答える 1

0

タイマーで関数を作成し、threading入力を求めながら実行するために使用します。次に、ユーザーが Enter キーを押したときにそれを強制終了します。

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

killについてはhttp://mail.python.org/pipermail/python-list/2004-May/281943.htmlも参照してください。

于 2013-04-23T21:26:46.847 に答える