2016-10-01 7 views
0

"50番目のバスがHH:MMに到着しました"という最終的なステートメントを印刷しようとしています。しかし、私のprintステートメントは私のforループのままです。どうすればそれから取り出せますか?また、私の出力はまだ括弧内にあるようです。私はそれを取り除く方法がわかりません。申し訳ありませんが、私はプログラミングに非常に慣れています。最後のステートメントをForループの外側に印刷

import numpy as np 
import math 
import random 

l=[] 
for i in range (50): 
    def nextTime(rateParameter): 
     return -math.log(1.0 - random.random())/rateParameter 
    a = np.round(nextTime(1/15),0) 
    l.append(a) 
cum_l = np.cumsum(l) 
print(cum_l) 

print("The 50th bus arrives at ", cum_l//60,":", cum_l%60,2) 
+1

投稿されているので、printステートメントのいずれもループ内にありません。おそらくあなたの投稿の字下げは、あなたのプログラムの実際の字下げと一致しないでしょうか? –

+4

また、 'nextTime'関数を50回定義する必要はありません。 –

+0

あなたのプログラムは私のために実行されません。私は 'ZeroDivisionError'に遭遇しています。私はそれが '1/15'の部分と関係があると思います。 – Mangohero1

答えて

0

Printはループではありません。forループです。 printforループにあると思われる理由は、であるlistを印刷するためです。しかし、最後の要素だけが必要です:

import numpy as np 
import math 
import random 

rateParameter = 1/15 

def nextTime(rateParameter): 
     return -math.log(1.0 - random.random())/rateParameter 

l=[] 
for i in range (50): 
    a = np.round(nextTime(rateParameter), 0) 
    l.append(a) 

cum_l = np.cumsum(l) 
#print(cum_l) 

output = "" 
last = len(cum_l) - 1 

output += str(cum_l[-1]//60) + ":" + str(cum_l[-1]%60) 

print("The 50th bus arrives at: ", output) 
+0

ありがとう、私はまだforループで50番目のバスについての最終的なステートメントを得ています。最終バスの時刻を印刷するだけでいいです。 –

+0

バスの到着時間リストの最後の要素のみを出力するように答えを更新しました。 – Chichi

関連する問題