블로그 이미지
김고노

calendar

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

Notice

2018. 3. 30. 15:43 파이썬 복습

함수란?



함수를 설명하기 전에 믹서기를 생각해보자


과일을 믹서기에 넣어 갈아서 주스를 만든다.



과일(입력)  ->  믹서기(함수)  ->주스(출력)



함수가 바로 믹서기와 비슷함.



함수가 하는 일은 입력값을 가지고 어떤 일을 수행한 다음에 결과물을 내어놓음.




함수를 사용하는 이유는?



1. 우선 프로그래밍을 하다보면 똑같은 내용을 반복해서 작성하는 경우가 있는데


반복되는 부분을 묶어서 '어떤 입력값을 주었을 때 어떤 결과값을 돌려준다'


라는 식의 함수로 작성하면 편하기 때문이다.


 

2. 자신이 만든 프로그램을 함수화하면 프로그램의 흐름을 쉽게 볼 수 있고


에러가 어디에서 나는지도 금방 알아차릴 수 있다.




파이썬 함수의 구조



def 함수명(입력 인수):

    수행할 문장1

    수행할 문장2

     ...




def는 함수를 만들 때 사용하는 예약어이고 함수명은 함수를 만드는 사람이 임의로 만들 수 있음.


입력 인수는 이 함수에 입력될 값.




def sum(a,b):

    return a+b



위 함수를 풀이해보면


"이 함수의 이름(함수명)은 sum이고 입력 인수로 2개의 값을 받으며 결과값은 2개의 입력값을 더한 값이다."




간단히 함수를 만들어보자


>>>def sum(a,b)

. . .      return a+b

. . .

>>>a = 3

>>>b = 4

>>>c = sum(a,b)  ←sum(3,4)의 리턴값을 c에 대입

>>>print(c)

7






입력값과 결과값에 따른 함수의 형태




일반적인 함수


def 함수명(입력 인수):

    수행할 문장

    ...

    return 결과값



전형적인 예)


>>>def sum(a, b):

. . .      result = a + b

. . .      return result  ← a+b의 결과값 리턴

. . .

>>>a = sum(3, 4)

>>>print(a)

7



입력값과 결과값이 있는 함수의 사용법


결과값을 받을 변수 = 함수명(입력 인수 1, 입력 인수 2, , ,)




입력값이 없는 함수



>>>def say():

. . .      return 'Hi'

. . .

>>>a = say()

>>>print(a)

Hi



위의 함수를 쓰려면 say()처럼 괄호 안에 아무런 값도 넣지 않아야함.


입력값은 없지만 결과값으로 Hi라는 문자열을 돌려줌.


a = say() 처럼 작성하면 a에 Hi 문자열이 대입되는 것.




입력값이 없고 결과값만 있는 함수의 사용법


결과값을 받을 변수 = 함수명()





결과값이 없는 함수


>>>def sum(a,b):

. . .      print("%d, %d의 합은 %d이다." %(a, b, a+b))

. . .

>>>sum(3, 4)

3, 4의 합은 7이다.



'3, 4의 합은 7이다' 라는 문장을 출력해 주었는데 왜 결과값이 없다는 것인지


의아하게 생각할수 있음. 이건 단지 (수행할 문장)에 해당하는 부분임.


결과값은 오직 return 명령어로만 돌려받을 수 있음.


돌려받을 값을 a라는 변수에 대입하여 출력해보면


>>>a = sum(3, 4)

>>>print(a)

None



None 은 거짓을 나타내는 자료형이고 return 이 있어야만 한다는것을 숙지.



결과값이 없는 함수의 사용법


함수명(입력 인수1, 입력 인수2, , ,) 





입력값과 결과값도 없는 함수



>>>def say():

. . .      print('Hi')

. . .

>>>say()

Hi


입력 인수를 받는 곳도 없고 return 문도 없으니 입력값과 결과값도 없는 함수



입력값과 결과값도 없는 함수의 사용법


함수명()





'파이썬 복습' 카테고리의 다른 글

3/31 사용자 입력과 출력  (0) 2018.03.31
3/30 함수(2/2)  (0) 2018.03.30
3/29 연습문제  (0) 2018.03.29
3/27 for문  (0) 2018.03.27
3/26 while문(2/2)  (0) 2018.03.26
posted by 김고노