Python/Python 시작하기

15. 파이썬 함수 - 함수 (function) 기초

arvigoes 2019. 12. 20. 22:32

함수란?                                                             

함수는 특별한 목적의 작업을 수행하기 위해 독립적인 영역에서 목적을 위해 작성된 코드의 집합입니다.

특수한 목적이 있을때마다 만들어진 함수를 사용함 으로써 매번 재작성 할 필요가 없어지므로 코드의 재 사용성을 높여 줍니다.

설명이 어렵게 느껴지시나요? 실생활에서 세탁기를 함수로 표현 할 수 있습니다.

15-1. 세탁기 함수

입력 1 ( 세탁물 (옷, 이불, 수건, ... ) )

입력 2 ( 세제 ( 가루, 액체, ... ) )

입력 3 ( 섬유유연제( ...) )

 

결과물 ( 깨끗한세탁물 )

세탁기는 입력이 한번에 3가지 종류 이고 결과는 1개 인 함수이네요

특수한 목적 은 세탁이 될 것이고, 옷이나 이불, 수건등을 세탁할때도 동일한 세탁기를 사용하므로 재사용 성에도 좋을 것이니 처음에 말한 함수의 모든 목적에 부합합니다. (꼭 재사용성이 함수의 필수 목적은 아닙니다. 코드의 흐름을 위해서 일정 코드 블럭을 함수화 해서 간결하게 코드를 블럭화 해서 전체적인 이해를 돕기위해서도 많이 사용 합니다.)

 

파이썬에서도 함수가 세탁기와 크게 다르지 않습니다.

위 이미지만 잘 기억하시면 함수는 어렵지 않게 사용 하실 수 있으리라 생각합니다.

앞으로 모든 코딩은 함수가 기본이 될것이라 생각 합니다. 클래스라고 또 새로운 것이 나오면 함수 -> 클래스로 넘어가게 되겠지만 함수가 완전히 이해 된다면 클래스도 어렵지 않게 이해 하시리라 생각 합니다.

 

함수의 구조                                                       

def 함수명(매개변수) :		# 함수이름 정의
      실행영역	   # 실행영역 (본문)
      실행영역	   # 실행영역 (본문)
      

 

def는 함수를 만들 때 사용하는 예약어이며, 함수명은 함수를 만드는 사람이 마음대로 만들 수 있습니다.

함수 이름 뒤 괄호 안의 매개변수는 이 함수에 입력으로 전달되는 값을 받을 수 있는 변수 입니다. (세탁기 예제에서 세탁물, 세제, 유연제 )

이렇게 함수를 정의한 다음 if, while, for문 등과 마찬가지로 함수를 호출 했을때 수행할 본문을 입력 합니다.

# Code 1

def ADD(a, b) :
	print(a+b)

이 함수의 이름은 ADD 이고, 입력으로 두 수를 받고 두수의 합을 출력 해 주는 함수입니다.

이 코드는 함수의 선언만 있고 아무런 결과가 없으니 실행을 해도 아무 의미가 없습니다.

함수는 선언이 되고 실제 사용을 해야만 그 의미를 가지게 됩니다.

 

이 함수를 직접 사용해 보도록 하겠습니다. 

# Code 2

# 함수 선언
def ADD(a,b):
    print(a+b)

num1 = 12
num2 = 13

# 함수사용
ADD(num1, num2)
ADD(2, 3)

 

15-2. 함수결과

어떠신가요? 함수에 대해 조금 감이 오시나요?

한번 정의 하고 두번 사용 했습니다.

함수의 본문이 길어질 수록, 사용 횟수가 많아질 수록 재사용의 의미가 커지겠지요.

그리고 본문 코드는 한줄로 줄어 들고 함수의 이름만 이해하기 쉽게 잘 지어 준다면 코드 몇줄만 봐도 이 프로그램은 어떤 프로그램인지 이해가 갈 수도 있을 것입니다.

# Code 3

냄비 = Get냄비()

넣기(냄비, 물)
끓이기(냄비)
넣기(냄비, 라면)
끓이기(냄비)

뭐 하는 프로그램인지 이해 가시나요? (파이썬은 한글로 코딩도 가능합니다)

저 과정을 자세히 설명하자면 엄청 많은 량이 되겠지만 함수로 포현한다면 간단해 집니다.

그러면 전체적으로 읽기 쉬운 프로그램이 되는 아름다운 결과게 됩니다.