본문 바로가기
Develop/Python

파이썬 - 함수 알아보기

by 라이프레이서 2021. 3. 8.

목차

    반응형

     

    chjune0205.tistory.com/160

     

    파이썬 Tuples와 Dictionary 알아보기

    chjune0205.tistory.com/159 Python 리스트에 대해 알아보자 chjune0205.tistory.com/158 파이썬 첫 걸음 - 변수 알아보기 이번 포스팅부터 본격적으로 파이썬에 대해 다루고자 한다. 변수 알아보기 가장 첫 단계..

    chjune0205.tistory.com

    지난 포스팅까지는 변수와 타입에 대해 알아보는 시간을 가졌다.

    이번 포스팅에서는 함수에 대해 알아보는 시간을 가져보겠다.

     

    함수를 왜 알아야 하는가?

    라면 끓이는 것을 예로 들어보겠다.

    라면 하나를 끓일 때의 동작은 다음과 같다.

    1. 물을 끓인다

    2. 스프를 넣는다

    3. 면을 넣는다

    4. 3분간 대기한다

    5. 계란을 넣는다

    6. 1분간 대기한다

     

    그럼 라면 10개를 끓일때는 어떻게 해야할까?

    위 행동을 10번 적을 것인가?

    물론 10번 적으면 동작 하긴 한다.

    하지만, 그 상태에서 스프를 물과 동시에 넣도록 바꾸고 싶다면?

    이 라면을 10억번 끓여야 한다면?

    모든 라면 끓이기 코드에 접근하여 이를 바꿔주는 것에는 크나 큰 비효율이 발생한다.

    이 때 함수를 만들면, 관리가 용이해진다.

     

    위의 라면 끓이는 기능을 하는 함수를

    라면 끓이기()

    라고 지어주자.

    그러면 라면을 끓어야 할 떄 라면 끓이기()를 호출해주기만 하면 알아서 그 내용이 실행될 것이다.

    추후에 끓이는 레시피를 바꾸더라도 라면 끓이기()함수의 내용 한 군데만 바꿔주면 되기에, 유지 보수에도 용이할 것이다.

    이렇게, 반복되는 기능을 하나의 이름으로 부를 수 있기 때문에 함수를 알아야 할 필요가 있다.

     

    파이썬에서 기본으로 제공해주는 함수

    지난 포스팅에서 우리는 기본적인 함수를 다룬 적이 있다.

    바로 print()라는 함수이다.

    이는 '콘솔 창에 원하는 문자열을 표시해주는 기능'을 하는 함수인 print가 이미 파이썬에 내장되어 있기에 사용할 수 있는 것이다.

    print()말고도 len() type()와 같은 기본 함수들을 제공해준다.

    len() : 길이를 반환하는 함수

    type() : 타입을 반환하는 함수

    int() : int 타입(정수)으로 변환하는 함수

    str() : string 타입(문자열)으로 변환하는 함수

    bool() : boolean 타입(참 거짓)으로 변환하는 함수

    float() : float 타입(소수점)으로 변환하는 함수

     

    그렇다면 기본으로 제공해주지 않는 기능들은 어떻게 해야 할까?

    함수 선언 방법

    파이썬에서 함수는 def를 이용해 선언한다.

    definition의 약자로 def를 사용하며, ()를 통해 선언할 수 있다.

    다른 언어와 다른점은 함수의 몸통 부분을 {}를 통해 시작과 끝으로 표시하는 것이 아닌, 들여쓰기로 구분한다는 점이다.

    def hello_world():
      print("Hello")
      print("World")
      
    hello_world()

    위는 파이썬으로 hello_world라는 함수를 선언했다.

    이 함수는 print("Hello")와 print("World")를 실행하는 기능을 한다.

    저렇게 정의된 함수를 호출할 때는 함수이름() 으로 불러주기만 하면 된다.

    hello_world()

     

    참고로, 자바스크립트의 함수 선언은 다음과 같다.

    function hello_world(){
      console.log("hello");
      console.log("world");
    }
    
    hello_world()

     

    함수 호출을 위한 hello_world() 부분만 같고, 형태는 다 다른것을 알 수 있다.

    자바스크립트 뿐만 아니라 다른 언어들 대부분이 {}로 함수의 시작과 끝을 알리지만, 파이썬은 들여쓰기로 구분된다는 점 꼭 기억하기 바란다.

     

    이제 자유롭게 나만의 함수를 만들어보자.

    함수 만들기 연습

    한글을 쓸 수 있다고 생각하고 쉽게 접근해보자

    위에서 말한 라면 끓이기 과정을 함수로 만든다면 어떻게 표현할 수 있을까?

    def 라면끓이기():
      물 넣기()
      스프 넣기()
      끓을때까지 대기()
      면 넣기()
      3분 대기()
      계란 넣기()
      1분 대기()
      
    라면 끓이기()

    이렇게 하면, 라면을 얼마를 끓이든간에, 라면끓이기()를 그 횟수만큼 호출해주기만 하면 된다.

    라면끓이기()를 이용해서 말이다.

     

    이렇게 함수의 구조만 알고 있다면, 어떤 기능을 하는 함수든 만들어낼 수 있을 것이다.

     

     

    반응형