클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

파이썬의 입출력 1 - 함수 1 : 함수의 형태와 사용방법에 대하여 본문

프로그래밍 언어/파이썬

파이썬의 입출력 1 - 함수 1 : 함수의 형태와 사용방법에 대하여

huenuri 2024. 9. 4. 16:22

우선 책으로 함수에 대한 기본적인 학습을 진행하려고 한다. 조금 전에 강의를 들었는데 무슨 말인지 거의 알아듣지 못했다. 다른 언어를 배울 때도 함수부터는 좀체 무슨 말인지 이해가 되지 않기도 하고 많이 어려웠었다. 
그래도 개념을 확실히 짚고 넘어가면 충분히 알아들을 수 있을 것 같다.


 
 
 

함수란 무엇인가?

우리는 믹서에 과일을 넣는다. 그리고 믹서를 사용해서 과일을 갈아 과일 주스를 만든다. 우리가 믹서에 넣는 과일은 '입력', 과일 주스는 '출력'이 된다.
그렇다면 믹서는 무엇일까? 함수가 바로 믹서와 비슷하다.

입력 값을 가지고 어떤 일을 수행한 후 그 결과물을 내어놓는 것이 함수가 하는 일이다. 프로그래밍에서 함수는 매우 중요하다.
 

 
 
 


 
 
 

함수를 사용하는 이유는 무엇일까?

반복되는 부분이 있을 경우, 그 부분을 한 뭉치로 묶어 '어떤 입력값을 주었을 때 어떤 결과값을 리턴해준다'라는 식의 함수로 작성할 수 있다.
함수를 사용하는 또 다른 이유는 자신이 작성한 프로그램을 기능 단위의 함수로 분리해놓으면 프로그램 흐름을 일목요연하게 볼 수 있기 때문이다. 프로그램의 흐름을 잘 파악할 수 있고 오류가 어디서 나는지도 쉽게 알아차릴 수 있다.


 
 

파이썬 함수의 구조

 

 
def는 함수를 만들 때 사용하는 예약어이며, 함수 이름은 함수를 만드는 사람이 임의로 만들 수 있다. 함수 이름 뒤 괄호 안의 매개변수는 함수에 입력으로 전달되는 값을 받는 변수이다. 이렇게 함수를 정의한 후 if, while, for 문 등과 마찬가지로 함수에서 수행할 문장을 입력한다.
 


 
 

매개변수와 인수

매개변수는 함수에 입력으로 전달된 값을 받는 변수, 인수는 함수를 호출할 때 전달하는 입력값을 의미한다.
 


 
 

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

함수는 들어온 입력값을 받은 후 어떤 처리를 하여 적절한 값을 리턴해준다. 함수의 형태는 엽력값과 리턴값의 존재 유무에 따라 4가지 유형으로 나뉜다.
 

 
입력값이 있고 리턴값이 있는 일반적인 함수이다.

 


 
 
 


 
 
 
 

 

 
여기서 print 문은 함수의 구성 요소 중 하나인 '수행할 문장'에 해당하는 부분일 뿐이다. 리턴값은 당연히 없다. 리턴값은 오직 return 명령어로만 돌려받을 수 있다. 다음을 확인해보자.

 



 

 
None이란 거짓을 나타내는 자료형이다. add 함수처럼 리턴값이 없을 때 a = add(3, 4)처럼 쓰면 함수 add는 리턴값으로 a 변수에 None을 리턴한다. None을 리턴한다는 것은 리턴값이 없다는 것이다.

 


 
 


 
 
 
 

매개변수를 지정하여 호출하기

함수를 호출할 때 매개변수를 지정할 수도 있다.
 


 
 
 

입력값이 몇 개가 될지 모를 때는 어떻게 해야 할까?

파이썬은 이런 문제를 해결하기 위해 다음과 같은 방법을 제공한다.

def 함수_이름(*매개변수):
	수행할 문장

 

 
*args는 임의로 정한 변수 이름이다. *pey, *python처럼 아무 이름이나 써도 된다.

 


 
 
 


 
 
 

학습을 마치고

함수 생각보다 공부할 게 많았다. 아까 4교시 때는 너무 졸리기도 하고 공부도 하기 싫었으나 점심시간에 잠을 자고 나니 몸도 마음도 다시 가뿐해졌다. 일어나기는 정말 힘들었지만 말이다.
다시 공부의 자리에 앉아 할 수 있다는 것만으로도 큰 변화이다. 함수도 전에는 알지 못했던 많은 것들을 알게 되었다.