if-else 语句中的语法无效
Invalid syntax in if-else statement
我写了下面的代码,returns“else”中的一个语法错误。 其他:^ SyntaxError:语法无效。我是 python 的新手,但我不知道我是否遗漏了什么。
def pressure_pa(self, altitude_m):
atm_layer = self.atm_layer_id(altitude_m)
atm_coef = 34.1632
if atm_layer > 1:
layer_alt_m = altitude_m-self.alt_layer[atm_layer-1]
if atm_layer == 1:
p0 = 101325.0
T0 = 288.15
k0 = -6.5
pres_pa = p0*pow(T0/(T0+k0*altitude_m/1000), atm_coef/k0)
elif atm_layer == 2:
p0 = 22632.06
T0 = 216.65
pres_pa = p0*math.exp(-atm_coef*(layer_alt_m/1000)/T0)
elif atm_layer == 3:
p0 = 5474.889
T0 = 216.65
k0 = 1.0
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 4:
p0 = 868.0187
T0 = 228.65
k0 = 2.8
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 5:
p0 = 110.9063
T0 = 270.65
pres_pa = p0*math.exp(-atm_coef*(layer_alt_m/1000)/T0)
elif atm_layer == 6:
p0 = 66.93887
T0 = 270.65
k0 = -2.8
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 7:
p0 = 3.956420
T0 = 214.65
k0 = -2.0
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 8:
pres_pa = math.exp(2.159582E-06*((altitude_m/1000)**3)-4.836957E-04*((altitude_m/1000)**2-0.1425192*altitude_m/1000+13.47530)
else:
pres_pa = math.exp(3.304895E-05*((altitude_m/1000)**3)–0.009062730*((altitude_m/1000)**2)+0.6516698*altitude_m/1000-11.03037)
pres_pa=pres_pa*(273.15+self.dtemp_K)/273.15
return pres_pa
确保用括号括起指数。检查最后一个 elif 的最后一个指数 (atm_layer == 8)。你需要在 2.
之后加一个括号
pres_pa = math.exp(2.159582E-06*((altitude_m/1000)**3)-4.836957E-04*((altitude_m/1000)**2**)**-0.1425192*altitude_m/1000+13.47530)
我写了下面的代码,returns“else”中的一个语法错误。 其他:^ SyntaxError:语法无效。我是 python 的新手,但我不知道我是否遗漏了什么。
def pressure_pa(self, altitude_m):
atm_layer = self.atm_layer_id(altitude_m)
atm_coef = 34.1632
if atm_layer > 1:
layer_alt_m = altitude_m-self.alt_layer[atm_layer-1]
if atm_layer == 1:
p0 = 101325.0
T0 = 288.15
k0 = -6.5
pres_pa = p0*pow(T0/(T0+k0*altitude_m/1000), atm_coef/k0)
elif atm_layer == 2:
p0 = 22632.06
T0 = 216.65
pres_pa = p0*math.exp(-atm_coef*(layer_alt_m/1000)/T0)
elif atm_layer == 3:
p0 = 5474.889
T0 = 216.65
k0 = 1.0
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 4:
p0 = 868.0187
T0 = 228.65
k0 = 2.8
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 5:
p0 = 110.9063
T0 = 270.65
pres_pa = p0*math.exp(-atm_coef*(layer_alt_m/1000)/T0)
elif atm_layer == 6:
p0 = 66.93887
T0 = 270.65
k0 = -2.8
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 7:
p0 = 3.956420
T0 = 214.65
k0 = -2.0
pres_pa = p0*pow(T0/(T0+k0*layer_alt_m/1000), atm_coef/k0)
elif atm_layer == 8:
pres_pa = math.exp(2.159582E-06*((altitude_m/1000)**3)-4.836957E-04*((altitude_m/1000)**2-0.1425192*altitude_m/1000+13.47530)
else:
pres_pa = math.exp(3.304895E-05*((altitude_m/1000)**3)–0.009062730*((altitude_m/1000)**2)+0.6516698*altitude_m/1000-11.03037)
pres_pa=pres_pa*(273.15+self.dtemp_K)/273.15
return pres_pa
确保用括号括起指数。检查最后一个 elif 的最后一个指数 (atm_layer == 8)。你需要在 2.
之后加一个括号 pres_pa = math.exp(2.159582E-06*((altitude_m/1000)**3)-4.836957E-04*((altitude_m/1000)**2**)**-0.1425192*altitude_m/1000+13.47530)