해결된 질문
작성
·
225
0
답변주신 내용을 보며 강의를 다시 한번 들어 보았는데 제가 이해한게 맞는지 알려주시면 감사하겠습니다.
def plus(x,y):
result = x+y
return result
이 코드는 plus라는 함수안에 x,y값이 있고 plus 안에 result =x+y라는 값을 만들어 다시 plus라는 함수에 저장하는 구조가 맞는건가요?
listbox = [15,46,78,24,56]
def min_max(data):
mi = min(data)
ma = max(data)
return mi,ma
a,b = min_max(listbox)
이 코드는 min_max라는 함수안에 data라는 입력값, mi안에는 입력값의 최솟값, ma에는 입력값의 최댓값, 그리고 mi,ma를 리턴해줘서 min_max함수에 저장이라는 구조가 맞는건가요?
이 구조가 맞다면 a,b = min_max(lisbox)는 min_max(listbox)에 저장되어있는 값을 a,b 순서대로 저장해주는 건가요?
그리고 data 라는 입력값은 왜 있어야 하는건가요? 데이터는 listbox안에 리스트 형태로 저장되어있는데 listbox가 아닌 data라는 입력값을 넣어주는 이유가 무엇일까요?
답변 1
0
함수는 저장하는 변수와는 달라요~ 저장을 하지는 않습니다. plus함수를 보면 인풋으로 2개 값을 넣게 되면 항상 더하기를 계산한 뒤 결과 값을 반환해요! 저장을 하지는 않아요. 저장을 하려면
a = plus(1, 2) 형태로 a라는 변수에 대입해서 저장할 수 있어요
def plus(x,y):
result = x+y
return result
반환값이 2개인 함수 입니다. 1번과 같이 저장은 하지 않습니다. 계산만할 뿐입니다. 저장을 하려면 a, b = min_max(인풋) 형태가 됩니다.
네, 정확합니다. 순서대로 받아옵니다 👍
함수는
정의와 실행으로 구분할 수 있어요. 제가 느끼기엔 정의=실행으로 보셔서 혼란이 있는 것 같습니다.
정의는
def min_max(data): 와 같은 형태이고, 정의한다고 해서 아무런 실행되지 않습니다. data는 임의로 만든 변수명일 뿐입니다. 정의할 때부터 실제 대입할 변수를 넣지는 않습니다.
def min_max(data):
mi = min(data)
ma = max(data)
return mi,ma
실행은
min_max(listbox)
min_max(실제 대입할 변수명 listbox) 입니다.
실행할 때 listbox에 있는 값을 data로 복사하고 함수가 실행됩니다. 꼭 listbox변수가 아니라 다른 변수로도 이 함수를 활용할 수 있죠 예를들면 listbox2, listbox3