Python: "SyntaxError: invalid syntax" for arithmetic

Python: "SyntaxError: invalid syntax" for arithmetic

这是我关于堆栈溢出的第一个问题,请评论我如何改进提问。

这是我认为与我的代码相关的部分。

#import libraries
from numpy import *
from matplotlib.pyplot import *

#leapfrog method
def orbit(m1=1.0e30, m2=1.0e24, a=1.0e11, e=0.1):

    #conditions
    G=6.67*e-11
    q=m1/m2
    m=m1+m2
    r0=(1-e)*a/(1+q)
    v0=1/(1+q)sqrt((1+e)/(1-e)*G*m/a)

导入代码时出现错误:

import hw5redo
  File "hw5redo.py", line 12
    r0 = (1-e)*a/(1+q)
                   ^
SyntaxError: invalid syntax

此外,当我从我的代码中注释掉它时,我收到:

import hw5redo
  File "hw5redo.py", line 12
    #r0=(1-e)*a/(1+q)
                 ^
SyntaxError: invalid syntax

我认为评论甚至不应该被视为语法错误,因为它们仅供用户使用。

@rth 是对的,请检查下面的代码,您应该在 sqrt 函数之前使用 *:

def orbit(m1=1.0e30, m2=1.0e24, a=1.0e11, e=0.1):

    G = 6.67 * e - 11
    q = m1 / m2
    m = m1 + m2
    r0 = (1 - e) * a / (1 + q)
    value = (1 + e) / (1 - e) * G * m / a
    # Note that value is negative in this case, and it will raise a warning
    print value
    v0 = 1 / (1 + q) * sqrt(value)

希望代码对您有所帮助。