如何解决if-else语句中的语法无效
我写了下面的代码,它在“ 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
解决方法
确保用括号括住指数。检查最后一个省略号的最后一个指数(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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。