我编写了以下代码,它在“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
1 回答
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
大话西游666
TA贡献1817条经验 获得超14个赞
确保用括号将指数括起来。检查最后一个 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)
添加回答
举报
0/150
提交
取消