Python正在努力得到一个循环方程

2024-06-02 19:42:36 发布

您现在位置: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]

Tags: 列表time公式printappendwhilevalanding
1条回答
网友
1楼 · 发布于 2024-06-02 19:42:36

我想问题是你总是把前三项的时间相加

难道不是这样吗

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]

相关问题 更多 >