计算变量每次更改的公式

时间:2019-04-28 11:44:47

标签: python

我正在尝试为一个变量的4个不同值求一个表达式。我正在尝试使用np.arange创建一个for循环,因为我的变量是浮点数。

import numpy as np
for Mf in np.arange(0.8,0.01,1.5):
    Vinf=Mf*(gamma*R*tatm)**0.5
    print(Mf)

我想对Mf = 0.8、0.9、1.2和1.5的上述表达式进行评估。我根本不知道该怎么做,或者使用for循环甚至合适。最后,我想将输出Vinf保存到数组中。我怎么能实现所有这些?

编辑:

好的,由于用户gmds,我使上面的代码可以正常工作。我正在尝试使用为Mf_values创建的列表,以在我的代码的P0表达式中使用。我已经通过以下方式尝试过:

Mf_values=[0.8, 0.9, 1.2, 1.5]
Vinf_values=[Mf_value*(gamma*R*tatm)**0.5 for Mf_value in Mf_values]
print(Vinf_values)
P0=[(1+((gamma-1)/2)*(Mf_values**2)**(gamma/(gamma-1))]
print(P0)
T0=(1+((gamma-1)/2)*(Mf_values**2))*tatm

我想使用4个不同的Mf_values求解P0和T0的表达式,并将结果以类似于Vinf_values的方式保存在列表中。但是,python给了我以下错误:

    P0=[(1+((gamma-1)/2)*(Mf_values**2)**(gamma/(gamma-1))]
                                                      ^
SyntaxError: invalid syntax

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以使用list理解:

Mf_values = [0.8, 0.9, 1.2, 1.5]

Vinf_values = [Mf_value * (gamma * R * tatm) ** 0.5 for Mf_value in Mf_values]

答案 1 :(得分:0)

对于这个小例子,您不需要任何numpy,您可以像这样在纯Python中完成它:

Vinfs = []
for Mf in [0.8, 0.9, 1.2, 1.5]:
    Vinf=Mf*(gamma*R*tatm)**0.5
    Vinfs.append(Vinf)
Vinfs = np.array(Vinfs) # If you want to have `ndarray` as your output