gudcks0415   2년 전

파이썬 함수에 대해 배울 때 여러개의 입력값을 받을 때 매개변수 앞에 *을 붙여 아래 코드와 같이 작성한다고 배웠었는데, 저렇게 작성하니 런타임에러가 뜨네요. *을 떼고 그냥 매개변수를 넣어주었을 때는 맞았다고 나오는데, 무엇이 잘못된 것인지 알수 있을까요?

bluejoyq   2년 전

args로 받게 되면 여러 매개 변수를 args 튜플에 담아 받게 됩니다. 그러나 주어지는 매개 변수가

a = 합을 구해야 하는 정수 n개가 저장되어 있는 리스트 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)

단 하나! 이기에

a = [1,2,3] # 가정
args = (a,) = ([1,2,3],)

이러한 형태로 들어가게 되어 오류가 발생합니다.

*args와 같은 형태는 func(a,b,c,d,e...)와 같이 매개변수가 몇개 들어올지 모를때 사용하시는게 적합합니다.

댓글을 작성하려면 로그인해야 합니다.