일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬기초공부
- 파이썬함수만들기
- 튜플vs리스트
- 파이썬
- 튜플인덱싱
- 파이썬리스트
- 파이썬기초
- 파이썬문자표현
- 파이썬공부하기
- 파이썬딕셔너리
- 문자열count
- 파이썬if문
- 파이썬튜플정의
- 파이썬치환
- 파이썬list
- 파이썬함수공부
- 파이썬프로그래밍
- 파이썬함수
- 파이썬문자열
- 파이썬함수사용하는방법
- 튜플정의하는방법
- 파이썬공부
- 파이썬숫자형
- 파이썬추천
- 파이썬자료형
- 파이썬튜플이란
- 파이썬tuple
- 파이썬replace
- 파이썬클래스
- 파이썬튜플
- 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 (매개변수에 초기값 미리 설정하기) (0) | 2020.03.13 |
---|---|
파이썬 함수 4 (매개변수 지정하여 호출하기) (0) | 2020.03.11 |
파이썬 함수 3 (함수의 4가지 종류) (0) | 2020.03.11 |