강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

hj2930hj님의 프로필 이미지
hj2930hj

작성한 질문수

4강 def문에 대해 추가 질문 있습니다!

해결된 질문

작성

·

225

0

답변주신 내용을 보며 강의를 다시 한번 들어 보았는데 제가 이해한게 맞는지 알려주시면 감사하겠습니다.

def plus(x,y):
  result = x+y
  return result
  1. 이 코드는 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)
  1. 이 코드는 min_max라는 함수안에 data라는 입력값, mi안에는 입력값의 최솟값, ma에는 입력값의 최댓값, 그리고 mi,ma를 리턴해줘서 min_max함수에 저장이라는 구조가 맞는건가요?

  2. 이 구조가 맞다면 a,b = min_max(lisbox)는 min_max(listbox)에 저장되어있는 값을 a,b 순서대로 저장해주는 건가요?

     

  3. 그리고 data 라는 입력값은 왜 있어야 하는건가요? 데이터는 listbox안에 리스트 형태로 저장되어있는데 listbox가 아닌 data라는 입력값을 넣어주는 이유가 무엇일까요?

답변 1

0

  1. 함수는 저장하는 변수와는 달라요~ 저장을 하지는 않습니다. plus함수를 보면 인풋으로 2개 값을 넣게 되면 항상 더하기를 계산한 뒤 결과 값을 반환해요! 저장을 하지는 않아요. 저장을 하려면
    a = plus(1, 2) 형태로 a라는 변수에 대입해서 저장할 수 있어요

def plus(x,y):
  result = x+y
  return result
  1. 반환값이 2개인 함수 입니다. 1번과 같이 저장은 하지 않습니다. 계산만할 뿐입니다. 저장을 하려면 a, b = min_max(인풋) 형태가 됩니다.

  2. 네, 정확합니다. 순서대로 받아옵니다 👍

  3. 함수는
    정의실행으로 구분할 수 있어요. 제가 느끼기엔 정의=실행으로 보셔서 혼란이 있는 것 같습니다.
    정의는
    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

hj2930hj님의 프로필 이미지
hj2930hj

작성한 질문수

질문하기