2012-05-03 3 views
0

을 기준으로하면 function입니다. 두 개의 빈 배열 (하나는 x, 다른 하나는 y)을 만들려고하는데, 나중에 파이썬으로 그릴 계획입니다. 하지만 무엇보다 먼저 이것은 내가 가지고있는 것입니다 ...파이썬 및 위어 슈트라즈 기능

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: 

구문 오류 또는 제안 사항에 도움을 주셔서 감사합니다. 나는 내가 충분히 분명했을 때만 그랬 으면 좋겠다. 미리 감사드립니다.

답변

1

실제로 구문 오류는 괄호가 균형을 이루지 않는 이전 줄에 있습니다. 해당 줄의 끝 부분에 여분의 )이 필요합니다 (오류를 너무 많이 지적한 것으로 표시).

그래서 suma = suma + ...suma = ...과 동일, 또한

  • suma가 0으로 설정되어 몇 가지 다른 문제가 있습니다,하지만 난 여전히이 라인 전에 while 루프를 추가해야합니다 같은데요.
  • 표시된 줄에 sumb = suma +이 있는데, 이는 아마도 복사/붙여 넣기 실수 일 것입니다.
  • x+=0에서 시작하는 코드 블록은 4가 아니라 3 칸으로 들여 쓰여집니다. 실제 코드에서는 그렇지 않습니다. 그렇다면 파이썬도이 점에 대해 불평 할 것입니다.
  • else m+=1:else: m+=1 (콜론 직접 후 else 아닌 줄의 끝에서.
  • break: 그냥해야한다() 대장에없는 break.
+0

DDK, 감사 또는 귀하의 의견. 그들은 정말이어야한다 도와줬고, while 회 돌이에 관해서는 당신이 옳았습니다 ... for 또는 while 회 돌이를 만드는 척하는 방법은 무엇입니까? 나를 위해 duh! 감사합니다. – mcs12

+0

괜찮습니다. 기꺼이 도와주었습니다. – ddk