함수 정의할때 변수 자리에 임의의 i번째 리스트 성분을 대입할 수 없나요???

조회수 476회
import random

M = 1500
N = 500

xrand = np.zeros(M)
test_list = []

for i in range(len(xrand)):
    xrand[i] = random.uniform(a,b)

def sampling(x[i],x[i+1]):       # 재귀함수 형태로 샘플링 추출과정 설계
    if xrand[i+1] / xrand[i] > random.random():
        test_list.append(xrand[i+1])
        return sampling(xrand[i+1],xrand[i+2])
    else:
        return sampling(xrand[i],xrand[i+2])



n = len(test_list) 

I = 0
for i in range(n):
    I += g(test_list[i])/n  
print(I)

위와 같이 코드를 작성했습니다만... 오류로 다음과 같이 나옵니다.(주피터 노트북 기준)

File "", line 14 def sampling(xrand[i],xrand[i+1]): ^ SyntaxError: invalid syntax

이 사이트에서 우측상단의 코드 실행기로 같은코드를 다시 실행해봐도 비슷한 오류가 다음과같이 나오네요.

File "/solution.py", line 16 def sampling(xrand[i],xrand[i+1]): ^ SyntaxError: invalid syntax def sampling(xrand[i],xrand[i+1]): ^ SyntaxError: invalid syntax

위 코드를 보시면 아시겠지만, 샘플링 과정의 연산을 재귀함수 형태로 만든 겁니다. 그런데 함수 정의할때 웬지 모르게 리스트의 i번째 성분을 변수로 받아들이지 못하는 것 같아요. 이걸 처리할 수 있는 방법이 있을까요?

  • 질문만 봐서는 어떤 의도의 코드를 작성하시려는지 감이 안오네요... 일단 x list의 용도를 알 수가 없구요. 지금 처럼 재귀함수를 만드시면 Stack overflow를 만나실 수 있습니다. 함수가 끝나지 않아요. 재귀 함수를 좀 더 학습하시길 권장드립니다. 알 수 없는 사용자 2019.1.18 17:28
  • 재귀 종료 조건도 문제긴 하지만 일단 함수 정의시 param을 쓰는데 문법 오류가 있습니다. 파라메터명에 square bracket("[" or "]")이 들어가면 안되요. doodoji 2019.1.18 17:45
  • 그렇군요 ㅠ... 다시 해보겠습니다.. 박형선 2019.1.18 17:59

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)