无效的语法差异,奇怪

invalid syntax discrepancy, strange

我写了下面的代码,其中定义了一些我稍后会用到的函数:

def dy1_dt(t, y1, y2, y3, y5, y6, i):
        S=pi*y5**2
        return -G*m_range[i]/y2**2+(1.0/(2.0*y3)*C_D*rho_range[i]*(y1**2+y2**2*y6**2)*cos(phi)*S


    def dy2_dt(t, y1, i):
        return y1        

    def dy3_dt(t, y1, y2, y5, y6, i):
        S=pi*y5**2
        return -0.5*C_H*rho_range[i]*(y1**2+y2**2*y6**2)**(1.50)*S/Q_abl

    def dy4_dt(t, y1, y2, y5, y6, i):
        return C_D*rho_range[i]/(2*iron_den)*(y1**2+y2**2*y6**2)/y5


    def dy5_dt(t, y1, y2, y3, y5, y6, i):
        S=pi*y5**2
        return -y5/(6.0*y3)*C_H*rho_range[i]*(y1**2+y2**2*y6**2)**(1.50)*S/Q_abl

    def dy6_dt(t, y1, y2, y3, y6, i):
        return -C_D*rho_range[i]/(2*y3*y2)*(y1**2+y2**2*y6**2)*sin(phi)*S-((y1*y6)/y2)

    def dy7_dt(t, y6, i):
        return y6

我在 'dy2_dt(t, y1, i)' 行收到一条错误消息,上面写着 'invalid syntax'。我不知道其中实际包含了哪些无效语法——看起来一切正常。

您的代码确实无效,您忘了关闭括号。

如果你扩展你的第一个函数,它给出:

def dy1_dt(t, y1, y2, y3, y5, y6, i):
        S=pi*y5**2
        return (
                -G *
                m_range[i] /
                y2 **
                2 +
                (
                        1.0 /
                        (2.0 *y3 ) *
                        C_D *
                        rho_range[i] *
                        (
                                y1 **
                                2 +
                                y2 **
                                2 *
                                y6 **
                                2
                        ) *
                        cos(phi) *
                        S