Login

Search

Learn 🇰🇷
2022.09.10 19:12

3.2 반환(return)문

Views 61 Votes 0 Comment 0

여러분, 함수가 무엇일까요? 

물론 함수에 대해 계속 배워왔지만, 결정적으로 빠진 내용이 하나 있습니다. 사실은 우리가 초등학교 때부터 배워왔던 것이기도 합니다. 과연 그것이 무엇일까요?

이 그림 낯익으시죠? 함수에 x를 집어 넣으면 함수가 계산해서 y라는 값을 돌려주는 그림입니다.

함수에 값을 넣으면 함수는 계산된 값을 돌려준다. 이것이 바로 함수의 핵심이지요. 프로그래밍에서도 마찬가지입니다. 지금까지 우리가 만든 함수들은 일은 열심히 하지만 돌려주는 것은 없었지요.

그렇다면 이젠 일도 하고 결과를 돌려주기도 하는 함수를 만들어 봐야겠죠?

>>> def f1(x):
...   a = 3
...   b = 5
...   y = a * x + b
...   return y             # return y
...
>>> c = f1(10)             # c = 35
>>> print(c)
35

 

 

위의 그림과 같은 역할을 하는 함수 f1()을 만들어봤습니다. 값을 돌려주기 위해 return 이라는 것이 쓰였지요? 이렇게 만들어진 함수에 10이라는 인자를 넣어주면 함수는 35라는 값을 돌려줍니다. 따라서, 그 값을 다시 c라는 변수에 넣을 수도 있는 거죠.

만약, 함수를 정의할 때 return y 대신에 print(y)라고 썼다면 어떻게 될까요?

>>> def f2(x):
...     a = 3
...     b = 5
...     y = a * x + b
...     print(y)           # print y
...
>>> d = f2(10)             # d = ?
35
>>> print(d)
None

 

 

d = f2(10)이라고 하면 f2() 함수가 실행되어 35가 화면에 나타나지만 d에게 값을 반환하지는 않죠. 그래서 d를 프린트해 보면 아무 값이 없다는 뜻으로 None이 출력됩니다.

어떠세요? 이제 함수가 값을 반환하는 것에 대해서 이해가 되시나요? 그렇다면 값을 반환하는 함수를 직접 만들어 보실 차례입니다.

삼각형의 넓이를 구하는 함수를 만들어보세요.

함수의 인자로는 삼각형의 밑변과 높이가 주어지고, 반환(return) 값은 삼각형의 넓이가 되는 겁니다. 간단하겠죠?

문제를 풀어보신 분께는 신기한 것을 하나 알려드리겠습니다.

아직 안 풀어보셨으면 빨리 해보세요.

다 풀어보셨죠? 그럼, 알려드리도록 하겠습니다.

 

 

참과 거짓

1 더하기 1은 2 맞죠? '참', '거짓'으로 대답해 보세요.

'참'이라고 대답하셨나요?

그럼 파이썬은 이 질문에 어떻게 대답할까요?

>>> 1 + 1 == 2
True

 

 

참이라고 답을 하네요.

>>> 1 + 1 == 3
False


  

이건 거짓이라고 하구요.

다음의 if 문을 보세요.

1 + 1이 2가 맞으면 'yes'라고 대답하고, 그렇지 않으면 'no'라고 대답하겠죠?

>>> if 1 + 1 == 2:
...     print('yes')
... else:
...     print('no')
...
yes

 

 

방금 알려드린 것과 함께 생각해 보면

1 + 1 == 2라는 식이 True(참)이면 yes를, False(거짓)이면 no를 프린트한다는 걸 알 수 있습니다.

우리가 함수를 만들 때 이런 성질을 활용하면 도움이 되겠죠?

쉬운 덧셈 문제를 내는 함수를 만들어 보겠습니다.

>>> def quiz():
...   ans = input('1 + 2 = ')
...   return 1 + 2 == int(ans)
...

 

 

input()이라는 함수는 사용자로부터 문자열 입력을 받는데 쓰이구요, int() 함수는 문자열을 정수로 바꿔줍니다. 예제에서는 input() 함수가 1 + 2 =이라는 문자열을 출력한 다음 사용자로부터 문자열을 입력 받아 그 값을 ans라는 변수에 넣어줬습니다.

셋째 줄에서는 1 + 2의 값과 int(ans)의 값이 같은지를 나타내는 True나 False로 반환하겠죠?

답을 맞히면 True를 돌려주고, 틀리면 False를 돌려주는 것이죠. 이해가 되시는지요?

위에서 만든 퀴즈를 다음과 같이 풀어볼 수 있습니다.

>>> quiz()
1 + 2 = 3
True
>>> quiz()
1 + 2 = 4
False 

 

 


List of Articles
No. Subject Author Date Views
Notice Learn What is Python? admin 2024.10.19 81
22 Learn 🇰🇷 8.1 예외처리(try, except) admin 2022.10.27 41
21 Learn 🇰🇷 7.1. 클래스(class)와 인스턴스 admin 2022.10.27 69
20 Learn 🇰🇷 6.1 텍스트 파일 admin 2022.10.21 58
19 Learn 🇰🇷 5.3 여러 가지 모듈 admin 2022.10.15 56
18 Learn 🇰🇷 5.2 모듈 가져오기(import) admin 2022.10.07 55
17 Learn 🇰🇷 5.1 모듈이란 admin 2022.10.03 58
16 Learn 🇰🇷 4.5 세트(set) admin 2022.10.02 58
15 Learn 🇰🇷 4.4 딕셔너리(dict) admin 2022.09.30 61
14 Learn 🇰🇷 4.3 튜플(tuple) admin 2022.09.21 61
13 Learn 🇰🇷 4.2 문자열과 리스트 admin 2022.09.16 58
12 Learn 🇰🇷 4.1 자료형 admin 2022.09.16 60
11 Learn 🇰🇷 3.4 람다(lambda) admin 2022.09.16 60
10 Learn 🇰🇷 3.3 지역변수, 전역변수 admin 2022.09.15 63
» Learn 🇰🇷 3.2 반환(return)문 admin 2022.09.10 61
8 Learn 🇰🇷 3.1 함수 admin 2022.09.01 71
7 Learn 🇰🇷 2.3 for를 사용하는 반복문 admin 2022.08.24 55
6 Learn 🇰🇷 2.2 조건문 (if-elif-else) admin 2022.08.23 63
5 Learn 🇰🇷 2.1 while을 사용하는 반복문 admin 2022.08.23 57
4 Learn 🇰🇷 1.4 인터프리터와 컴파일러 admin 2022.08.19 71
3 Learn 🇰🇷 1.3 리스트 admin 2022.08.13 63
Board Pagination Prev 1 2 Next
/ 2