-1

スレッドを使用せずにグローバル変数を 2 秒ごとにインクリメントするにはどうすればよいでしょうか?

def get_interval():
    var a=1;
    for every 2 second
    a++;
    return a;

a2秒ごとに値を増やすにはどうすればよいですか?

4

2 に答える 2

2

変数にアクセスしないと、時間の経過とともに増加したとしても、あまり役に立ちません。したがって、あなたが本当に欲しいのは、時間の経過とともに増加しているかのように答えを与える何らかの方法でアクセスできるものです. しかし、それを行うには、開始時から現在の時間を差し引くだけです。

たとえば、次のようなものを使用できます。

import time

def make_ticker():
    start = time.time()
    def elapsed():
        now = time.time()
        return now-start
    return elapsed

そして、それを開始した後、あなたがする必要があるのは、a()代わりに書くことだけですa:

>>> a = make_ticker()
>>> a()
3.3126659393310547
>>> a()
5.144495010375977
>>> a()
7.766999006271362

同様に、経過した 2 秒間の期間の数をカウントする場合:

def make_ticker(seconds):
    start = time.time()
    def elapsed():
        now = time.time()
        return (now-start)//seconds
    return elapsed

>>> a = make_ticker(2)
>>> a()
0.0
>>> a()
1.0
>>> a()
1.0
>>> a()
2.0

(1 から開始するように簡単に変更できます。)

于 2013-07-20T13:33:01.030 に答える
1

正確な時間を気にしない場合は、次のようにインクリメントの間に 2 秒間スリープできます。

import time

a = 1

for i in range(10):
    time.sleep(2)
    print a
    a += 1

出力:

1
2
...
9
10
于 2013-07-20T13:13:13.030 に答える