Python 3では、たとえば10秒間関数を繰り返すにはどうすればよいですか。この場合、関数はラズベリーパイの出力を特定の時間ハイとローに切り替えています。これは、これが発生する前に指定された時間だけ発生する必要があります。
質問する
379 次
2 に答える
0
期間中、関数を継続的に呼び出す必要がない場合は、次のようにすることができます。
import time
f()
time.sleep(sec)
g()
これは、 ;f
によって元に戻される結果を引き起こす関数です。秒が経過するまで呼び出されないg
ため、の結果は必要な限り有効になります。g
sec
f
編集:f
重要な時間がかかり、これをより正確にする必要がある場合は、次のことを試してください。
import time
before_f = time.clock()
f()
after_f = time.clock()
time.sleep(sec-(after_f-before_f))
g()
于 2013-02-20T07:52:08.777 に答える
0
試す:
def run_wrapper(sec):
starttime = datetime.datetime.now()
endtime = None
while True:
f()
endtime = datetime.datetime.now()
if (endtime - starttime).total_seconds() >= sec:
break
print('Ran for %s seconds' % (endtime - starttime).total_seconds())
f
呼び出したい関数はどこにありますか。これは正確に sec
数秒間実行されないことに注意してください。sec
秒が経過していない場合、関数を呼び出します。たとえば、関数の所要時間が 30 秒で、31 秒を指定した場合、関数は 2 回呼び出され、合計 60 秒になります。
于 2013-02-20T07:46:42.127 に答える