
파이썬 함수 기초 배우기 - 코드를 짧고 효율적으로 만드는 방법
파이썬 코딩을 하다 보면 똑같은 내용을 여러 번 반복해서 작성해야 할 때가 있습니다. 상상해보세요! 똑같은 편지를 100명에게 보내는데, 매번 처음부터 끝까지 손으로 다 쓰는 것과 같아요. 정말 비효율적이겠죠?
이럴 때 우리를 도와주는 것이 바로 함수(Function)입니다. 함수는 특정 작업을 수행하는 코드 조각들을 하나로 묶어 이름을 붙인 것입니다. 마치 복잡한 작업을 '자동으로 해주는 기계'처럼 생각할 수 있습니다. 한번 만들어 두면 필요할 때마다 그 이름만 불러서 쉽게 사용할 수 있어 코드를 훨씬 짧고 깔끔하게 만들어 줍니다.
이번 시간에는 파이썬 함수의 가장 기본적인 개념과 사용법을 배우면서, 어떻게 코드를 재사용하고 정리할 수 있는지 알아보겠습니다.
함수란 무엇일까요? 왜 필요할까요?
함수는 미리 정해둔 코드를 저장해 놓은 '코드 상자'와 같습니다. 이 상자 안에 있는 코드를 실행하고 싶을 때, 상자의 '이름'만 부르면 됩니다.
함수를 사용하는 주된 이유는 두 가지입니다.
- 코드 재사용 (Code Reusability): 같은 코드를 여러 번 다시 쓸 필요 없이, 한 번 만들어 놓은 함수를 필요할 때마다 계속 사용할 수 있습니다. 이렇게 하면 코딩 시간을 줄일 수 있습니다.
- 코드 정리 (Code Organization): 관련된 코드들을 함수로 묶어 놓으면 프로그램 전체가 더 깔끔하고 이해하기 쉬워집니다. 마치 방을 정리정돈하는 것과 비슷합니다.
파이썬에서는 def 키워드를 사용하여 함수를 '정의' 즉, 만듭니다. 그리고 함수의 이름을 부르는 것을 '호출' 즉, 사용한다고 합니다.
예시 1: 기본적인 함수 만들기 (정의)와 사용하기 (호출)
먼저 가장 간단한 함수를 만들어 보겠습니다. 이 함수는 그냥 화면에 인사말을 출력하는 기능만 가지고 있습니다. def로 시작하고, 함수 이름 뒤에 괄호 ()와 콜론 :을 붙입니다. 함수 안에 포함될 코드는 반드시 들여쓰기를 해야 합니다.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
보시는 것처럼 say_hello()라는 이름만 두 번 부르면, 함수 안에 있는 print 코드 두 줄이 반복해서 실행됩니다. 코드를 짧게 만들고 반복을 줄이는 첫걸음입니다.
예시 2: 함수에게 정보 전달하기 (인자/매개변수)
함수는 단순히 정해진 코드만 실행하는 것이 아니라, 외부로부터 '정보'를 받아서 그 정보를 이용해 작업을 수행할 수도 있습니다. 이때 함수에게 전달하는 정보를 '인자(Argument)'라고 부르고, 함수 정의 시 괄호 () 안에 쓰는 변수 이름을 '매개변수(Parameter)'라고 합니다.
마치 자판기에 돈(인자)을 넣으면 원하는 음료수(결과)가 나오는 것처럼, 함수에 필요한 정보(인자)를 주면 함수가 그 정보를 가지고 작업을 합니다.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
함수 greet는 호출될 때마다 다른 이름(인자)을 받아서 다른 인사말을 만들어 출력합니다. 이렇게 인자를 사용하면 함수를 더 다양하게 활용할 수 있습니다.
예시 3: 함수로부터 결과 돌려받기 (반환값)
어떤 함수는 단순히 작업을 수행하고 끝나는 것이 아니라, 작업의 '결과'를 다시 호출한 곳으로 돌려주기도 합니다. 이렇게 함수가 돌려주는 값을 '반환값(Return Value)'이라고 하며, return 키워드를 사용합니다.
마치 계산기에 숫자를 입력하고(=인자), 더하기 버튼을 누르면(=함수 실행), 결과 숫자가 화면에 나타나는 것(=반환값)과 같습니다. 이 결과 숫자를 가지고 또 다른 계산을 할 수 있죠.
위 코드를 실행하면 다음과 같은 결과가 화면에 나타납니다.
add_numbers 함수는 두 숫자를 더한 '결과값'을 돌려줍니다. 이 결과값을 변수에 저장하거나 다른 연산에 바로 사용할 수 있어 코드를 더욱 유연하게 만들 수 있습니다. print는 단순히 화면에 보여주는 것이고, return은 함수 밖으로 값을 '전달'하는 역할이라는 점을 기억하세요.
주의:
함수를 정의할 때 함수 안에 포함될 코드는 반드시 들여쓰기를 해야 합니다. 들여쓰기가 잘못되면 오류가 발생합니다. 또한, 함수를 사용할 때는 정의할 때와 똑같은 이름과 괄호 ()를 사용해야 합니다. 인자가 필요한 함수라면 괄호 안에 필요한 값들을 넣어줘야 합니다.
핵심 : 함수는 def 키워드로 정의하며, 코드 반복을 줄이고 프로그램을 체계적으로 만듭니다. 괄호 () 안에 인자를 받아들여 다양한 작업을 수행할 수 있고, return 키워드로 결과를 돌려줄 수 있습니다.
마무리 요약
이번 강의에서는 파이썬 함수가 무엇인지, 그리고 함수를 사용해서 어떻게 코드를 묶고 필요할 때마다 다시 실행할 수 있는지 기본적인 방법을 배웠습니다. 함수는 코드를 짧고 효율적으로 만들고 관리하기 쉽게 해주는 아주 중요한 개념입니다. def 키워드로 함수를 정의하고, 이름과 괄호 ()를 사용해서 함수를 호출하며, 인자로 정보를 주고 return으로 결과를 받는 과정들을 꼭 기억해주세요.
다음 강의에서는 함수를 만들 때 인자에 기본값을 설정하거나, 인자의 개수가 정해지지 않은 경우 어떻게 처리하는지 등 함수의 조금 더 다양한 활용법에 대해 알아보겠습니다.
오늘 배운 함수 예제들을 직접 코딩해보면서 익혀보세요!
궁금한 점이 있다면 언제든지 댓글로 질문을 남겨주세요.