• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

퀴즈에서 return은 구체적으로 어떤 기능을 하나요?

21.04.18 16:26 작성 조회수 155

3

잘 모르겠네요 ㅠㅠ

return을 왜 써야 하는 건가요??

답변 2

·

답변을 작성해보세요.

1

uki020226님의 프로필

uki020226

2021.05.07

쉽게 말해 Return 은 함수의 반환 값입니다. 

좀 더 쉽게 설명하면, 어떤 함수의 결과 값이라고 생각하면 될것 같습니다. 
그 결과값을 받아다가, 다른 함수에서 활용할 수도 있고, 표기 할수도 있죠. 
예를들면, 

randrange(2, 10) 이라고 하면, 이 randrange 라는 함수는 2이상 10미만의 랜덤한 값을 출력합니다. 
그 결과를 반환하죠. 

이 결과를 
a 라는 변수에 저장하면, 

a = randrange(2, 10) 라는 형태가 되는데, 

여기서 a 가 return 값과 같아 집니다. 
이 리턴 값을 받아다가

print(a) 하는 식으로, 프린트 함수에서 사용가능하죠. 

이는 이미 정의된 함수 뿐만아니라, 본인이 만들어도 똑같습니다. 

예를들어, 

def sum():
    a = input('첫번쨰 숫자 입력')

    b = input('두번쨰 숫자 입력')

    c =  int(a) + int(b)
    return c

라고 작성한 후에, 

print(sum())

를 치면, 터미널에 첫번쨰 숫자와 두번쨰 숫자를 입력하라고 차례로 나오며, 여기에 각각의 숫자를 입력하면, 

그 합값이 c 로 반환 되며, 

print함수 내의 sum() 은 반환된 c 와 같아 집니다. 

여기서 위에서 만들어진 함수의 return c 부분의 c 값을 다르게 적으면,  예를들어, 0 을적는다면, 
a 와 b 에 뭘 넣든간에 0 이 반환 되어, 결과는 0으로 항상 나오게 됩니다. 

return 은 그럼 왜 쓰는가? 에 대한 의문이 여전히 생길 수 있습니다. 

이에 대해서, 

return 을 없애고, 적용해 보죠. 

def sum():
    a = input('첫번쨰 숫자 입력')

    b = input('두번쨰 숫자 입력')

    c =  int(a) + int(b)

print(sum())

이렇게 되겟네요. 그럼 sum(0 함수는 아무것도 반환하지 않으므로, 결과는 None 이 나오게됩니다. 

그럼 sum 에서 c 라는 변수를 만들었으니까, c를 쓰면 되지 않을까요? 하는 의문이 들 수 있습니다. 그래서 해보면, 

def sum():
    a = input('첫번쨰 숫자 입력')

    b = input('두번쨰 숫자 입력')

    c =  int(a) + int(b)

print(c)

c라는 변수가 생성되지 않았으므로, 오류가 생깁니다. 이는 a b c 같은 변수는 지역 변수라서, sum() 함수 내에서만 작용하는 변수이기 떄문입니다. 

그러면 전역 변수로 바꿔주면 되지 않겟냐고요? ( 이미 몇번을 이렇게 하면 되지 않겟냐고, 계속 물어서 이쯤 되면 그냥 return 쓸게요 할거 같지만... )
그렇게 되면, 모든 변수를 미리 다 만들어 놓고 사용해야 하고, 그렇게 하다보면, 변수의 자유도도 굉장히 떨어지게 됩니다. 
음 그러니까 이게 4줄 5 줄 ㅈ짜리 코드이니까 그렇지 코드가 길어지고 복잡해지면 변수도 당연히 늘어나게 되는데, 모든 변수를 전부다 전역 변수로 설정하게 되면, 코드는 굉장히 무거워집니다. 


이렇게 어떤 함수의 결과를 바깥으로 꺼내 기 위해서, return 이라는 걸 사용합니다. 

1

haon님의 프로필

haon

2021.04.19

return함수에만 있는데 함수가 무었이고 어떤역할을 하는지 이해하기 어렵습니다.

https://wikidocs.net/24읽어보세요.

함수에는 3개의 요소가 있는데  이름, 인수, 반환값이 있습니다.

함수를 정의할때에는 절대로 이름을 정해야합니다. (이름이 없는 함수는 없습니다.)

다음은 인수가 있을지 없을지 정합니다.

마지막으로 함수의 반환값이 있을지 없을지 정합니다.

아래의 예시코드는 인수와 반환값이 둘다있는 함수입니다.

아래코드의 경우 이름: sum, 인수: 있음(x, y), 반환값: 있음(x + y) 입니다

def sum(x, y): #함수를 부르기전에 정의해두는것이라 아직 실행은 않됩니다. #4: 이제 sum(a(2), b(3))으로 불렸으니까 x, y에 순서대로 2, 3을 넣고 실행됩니다.
	return x + y #5: 2 + 3을 반환합니다.
a = 2 #1: a에 2를 집어넣습니다.
b = 3 #2: b에 3을 집어넣습니다.
result = sum(a, b) #3: 인수를 a(2)와 b(3)으로 sum함수를 부르고, 그 반환값을 result에 집어넣습니다.
print(result) #6: 결과값을 출력합니다.

이코드를 보고나서 다시 강의를 보면 이해할 수 있나요?

강의의 코드는 175와 "남자"를 인수로 함수를 부르고 반환값을 weight에 넣고나서 출력한것입니다.

--------------------------------------------------+

또한 도움이되었다면 좌측하단의 하트를 눌러주세요.