2016-12-14 8 views
0

私は実行して結果をリストに格納しようとしています。それは別個のリストからの新しい価値でこれをする必要があります。私はそれを一度正しく実行することができますが、毎回同じ値を再作成するだけで、なぜそれを見るのは苦労しています。Pythonはループする式を得るのに苦労しています

alts=[50000,30000,10000] 
    alte=[30000,10000,0] 
    time=[] 
    mins=[0,100,30] 
    maxs= [0,0,30] 
    Va=[] 
    landing= [] 
    vMax=500 
    vMaxL= [] 

    while vMax < 601: 
     vMaxL.append(vMax) 
     maxs[0]= vMax 
     maxs[1]= vMax 

     for i in range (0, len(alts)): 
      Va.append((mins[i]+maxs[i])/2) 
      time.insert(0,(alts[i]-alte[i])/Va[i]) 
      timetaken= time[0] + time [1] + time[2] 
      landing.append(timetaken) 

     vMax= vMax + 20 

    print vMax 
    print maxs 
    print vMaxL 
    print timetaken 
    print landing 

出力は次のようになります。

620 
    [600, 600, 30] 
    [500, 520, 540, 560, 580, 600] 
    479 
    [479, 479, 479, 479, 479, 479] 
+0

timetakenは常に、あなたが別の値を毎回見ることを期待し、なぜ私はよく分からない479の値が生成されますか?私があなたの質問を誤解した場合にはお詫び申し上げます – smoggers

答えて

0

私はこの問題は、あなたが常に時間の最初の3つの項目の合計を作っているということだと思います。

このようにはなりませんか?

import numpy as np 

alts=[50000,30000,10000] 
alte=[30000,10000,0] 
time=list() 
mins = np.array([0,100,30]) 
maxs = np.array([0,0,30]) 
Va = list() 
landing = list() 
vMax=500 
vMaxL= list() 

while vMax < 601: 
    vMaxL.append(vMax) 
    maxs[0]= vMax 
    maxs[1]= vMax 

    for i in range (0, len(alts)): 
     Va.append((mins[i]+maxs[i])/2) 
     time.insert(0,(alts[i]-alte[i])/Va[i]) 
     timetaken= np.sum(time) 
     landing.append(timetaken) 

    vMax= vMax + 20 

print ('vMax:', vMax) 
print ('maxs:', maxs) 
print ('vMaxL:', vMaxL) 
print ('timetaken:', timetaken) 
print ('landing',landing) 

出力は次のようになります。

vMax: 620 
maxs: [600 600 30] 
vMaxL: [500, 520, 540, 560, 580, 600] 
timetaken: 2880.0 
landing [80.0, 146.66666666666669, 480.0, 560.0, 626.66666666666663, 959.99999999999989, 1040.0, 1106.6666666666667, 1440.0, 1520.0, 1586.6666666666667, 1920.0, 2000.0, 2066.666666666667, 2400.0, 2480.0, 2546.666666666667, 2879.9999999999995] 
関連する問題