我正在尝试为一个变量的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
我该如何解决这个问题?
答案 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