Python:算术的“SyntaxError:无效语法”

时间:2015-07-20 22:52:32

标签: python-2.7 syntax-error

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

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

#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

我认为评论甚至不应被视为syntaxErrors,因为它们仅供用户使用。

1 个答案:

答案 0 :(得分:1)

@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)

希望代码可以帮助你。