2017-10-06 16 views
0

私のプログラミング教師は、毎回1-100の間の数字をランダムに生成するプログラムを作成する簡単なタスクを割り当てました30秒間3秒。これまで私のプログラムはこれまでのところです:x秒ごとにプログラムを繰り返すにはどうすればいいですか(私の場合、3秒ごとに30秒間)

import random 
import time 

while True: 
    print(random.randint(0,100)) 
    time.sleep(3) 

現時点では、3秒ごとに無限に印刷されます。私は30秒間それを繰り返すことを望む。

ありがとうございました!

+1

だから、時間の経過を追います。あなたは変数の概念を理解していますか? –

+0

'while True'の代わりに30/3または10回反復するループ構造が必要ですか?これは3秒ごとに10回、合計30秒です。別の言い方をすると、「経過秒数」の変数があり、ループが30秒に達するとループから脱落します。この課題の目的は、Pythonのドキュメントを見て、一定回数反復する方法を決定することです。 – lurker

+0

そして、random.randint()と要件に注意してください。現在は、0から100の間の乱数を取得しています。おそらく、これはこの課題のポイントではありませんが、必要な範囲が「1〜100」の場合、指示に従わないためにポイントを取ることになります。 – Dalen

答えて

3
import random 
import time 
a=time.clock() 

while ((time.clock()-a)<30): 
    print(random.randint(0,100)) 
    time.sleep(3) 
+0

代わりにtime.time()を使用してください。 time.clock()は予測できません。 – Dalen

0

time.time()の機能を使用してください。これは、1970年1月1日00:00:00(UTC)以降の秒単位の時間を示します。そのような範囲のループの

import random 
import time 

counter = 30 
start_time = time.time() 
while time.time() - start_time < counter: 
    print(random.randint(0,100)) 
    time.sleep(3) 
0

使用A:

import time 
import random 
a=time.clock() 
for x in range(10): 
    print(random.randint(1,100)) 
    time.sleep(3) 
関連する問題