일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 국민내일배움카드
- 페이스북광고
- 파킹통장
- GA공부
- 파이썬문자열
- 구글애널리틱스
- 파이썬함수
- GA4
- 연말정산
- 메이크샵
- 구글ads
- 파이썬정규표현식
- 유튜브광고
- GA설치
- 구글애널리틱스강의
- 구글애널리틱스공부
- 책추천
- 파이썬프로그래밍
- 파킹통장추천
- 신용카드추천
- GA
- GA가이드
- 파이썬공부
- 마케팅
- 구글애널리틱스4
- 카페24
- 파이썬내장함수
- 파이썬
- 유튜브
- 구글애널리틱스가이드
- Today
- Total
정리왕
파이썬 함수 5 (함수의 결과값은 언제나 하나이다) 본문
# 함수의 결과값은 언제나 하나이다
먼저 다음의 함수를 만들어 보자.
>>> def add_and_mul(a,b):
return a+b, a*b
이 함수를 다음과 같이 호출하면 어떻게 될까?
>>> result = add_and_mul(3,4)
결과값은 a+b와 a*b 2개인데 결과값을 받아들이는 변수는 result 하나만 쓰였으니 오류가 발생하지 않을까?
당연한 의문이다. 하지만 오류는 발생하지 않는다. 그 이유는 함수의 결과값은 2개가 아니라 언제나 1개라는 데 있다.
add_and_mul 함수의 결과값 a+b와 a*b는 튜플값 하나인 (a+b, a*b)로 돌려준다.
따라서 result 변수는 다음과 같은 값을 갖게 된다.
result = (7, 12)
즉 결과값으로 (7, 12)라는 튜플 값을 갖게 되는 것이다.
만약 이 하나의 튜플 값을 2개의 결과값처럼 받고 싶다면 다음과 같이 함수를 호출하면 된다.
result1, result2 = add_and_mul(3, 4)
이렇게 호출하면 result1, result2 = (7, 12)가 되어 result1은 7이 되고, result2는 12가 된다.
또 다음과 같은 의문이 생길 수도 있다.
>>> def add_and_mul(a,b):
return a+b
return a*b
>>>
위와 같이 return문을 2번 사용하면 2개의 결과값을 돌려주지 않을까?
하지만 파이썬에서 위와 같은 함수는 참 어리석은 함수이다.
그 이유는 add_and_mul 함수를 호출해 보면 알 수 있다.
>>> result = add_and_mul(2, 3)
>>> print(result)
5
add_and_mul(2, 3)의 결과값은 5 하나뿐이다. 두 번째 return문인 return a*b는 실행되지 않았다는 뜻이다.
이 예에서 볼 수 있듯이 두 번째 return문인 return a*b는 실행되지 않았다. 따라서 이 함수는 다음과 완전히 동일하다.
>> def add_and_mul(a,b):
return a+b
>>>
즉 함수는 return문을 만나는 순간 결과값을 돌려준 다음 함수를 빠져나가게 된다.
*retrun의 또 다른 쓰임새
특별한 상황일 때 함수를 빠져나가고 싶다면 return을 단독으로 써서 함수를 즉시 빠져나갈 수 있다. 다음 예를 보자.
>>> def say_nick(nick):
if nick == "바보":
return
print("나의 별명은 %s입니다." %nick)
>>>
위 함수는 '별명'을 입력으로 전달받아 출력하는 함수이다. 이 함수 역시 반환 값(결과값)은 없다(문자열을 출력한다는 것과 반환 값이 있다는 것은 전혀 다른 말이다. 혼동하지 말자. 함수의 반환 값은 오로지 return문에 의해서만 생성된다).
만약에 입력값으로 '바로'라는 값이 들어오면 문자열을 출력하지 않고 함수를 즉시 빠져나간다.
>>> say_nick('야호')
나의 별명은 야호입니다.
>>> say_nick('바보')
>>>
이처럼 return으로 함수를 빠져나가는 방법은 실제 프로그래밍에서 자주 사용한다.
'6.개발 > 파이썬 공부하기' 카테고리의 다른 글
파이썬 함수7 (함수 안에서 선언한 변수의 효력 범위) (0) | 2020.11.29 |
---|---|
파이썬 함수 6 (매개변수에 초기값 미리 설정하기) (0) | 2020.11.29 |
파이썬 함수 4 (매개변수 지정하여 호출하기) (0) | 2020.11.29 |
파이썬 함수 3 (함수의 4가지 종류) (0) | 2020.11.29 |
파이썬 함수2 (매개변수와 인수) (0) | 2020.11.29 |