为了账号安全,请及时绑定邮箱和手机立即绑定

if-else 语句中的语法无效

if-else 语句中的语法无效

守着一只汪 2023-08-08 15:59:46
我编写了以下代码,它在“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 回答

?
大话西游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)



查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信