0

基于此功能。我正在尝试创建两个空数组(一个用于 x,另一个用于 y),稍后我将使用它在 python 中进行绘图。但在此之前,这是我到目前为止所拥有的......

    import math

    x1=-2.0 
    x2=2.0

    arr1 = []
    arr2 = []

    i=0
    n=10
    delta=(x2-x1)/n
    for i in range (0,n+1):
        x=x1+delta*i        
        arr1.append(x)         
    print arr1
     # I have not called the w function yet

为了简单起见,上面的代码现在创建了一个包含 10 个数字的列表。然后它将数组的元素发送到下面的函数并计算具有特定数字的方程(无限循环)。

    #This function will create the array list for y
    import math

    def w(x, limit):# the limit here to compare when the number is really small            
        suma = 0.0
        sumb = 0.0
        m=1
        x=0
        suma=suma+((1/(math.pow(2,m))*(math.sin(math.pow(2,m)*x)))
        sumb=suma+((1/(math.pow(2,m+1))*(math.sin(math.pow(2,m+1)*x))) # I'm having a 
                                                                       #syntax error  
                                                                        #here
       x+=0
       if (abs (suma-sumb)<limit):
            break:
       else m+=1:
       if (m<20):
            break:

对于我的语法错误或任何建议,我将不胜感激。我只希望我足够清楚。提前谢谢

4

1 回答 1

1

语法错误其实在上一行,括号不平衡。)您需要在该行的末尾添加一个额外的内容(顺便说一句,在您指出的错误处)。

还有一些其他问题

  • suma设置为零,因此suma = suma + ...与 相同suma = ...,但我猜您仍然需要while在此行之前添加循环。
  • 在指示的行上,您有sumb = suma +,这可能是复制/粘贴错误。
  • 从 开始的代码块x+=0缩进了 3 个空格而不是 4 个。在您的实际代码中可能不是这种情况,但如果是这样,Python 也会抱怨这一点。
  • else m+=1:应该是else: m+=1(直接在 之后的冒号else,而不是在行尾。
  • break:应该只是break(没有冒号)。
于 2012-05-03T07:08:50.657 回答