Development(개발 공부)/Python & AI

[Python] 파이썬 기초 14: 코드의 재사용성을 높여주는 마법의 상자, 함수(Function) 💻✨

jsummer07 2026. 10. 27. 11:18

안녕하세요! 스마트인재개발원 파이썬 공부 기록입니다.
지금까지 긴 코드를 한 줄씩 위에서 아래로 실행해 왔다면, 이번 시간에는 코드를 깔끔하고 효율적으로 묶어두는 '함수(Function)'에 대해 알아보겠습니다! 🚀

자바를 해보셨거나 다른 언어를 접해보셨다면 익숙하실 메서드(Method)와 완전히 같은 개념이에요. 처음 함수를 정의할 때는 머리가 핑 돌고 복잡할 수 있지만, 한 번 만들어두면 나중에는 마법처럼 편하게 써먹을 수 있는 강력한 무기랍니다!


1. 사용자 정의 함수 선언과 호출

함수는 쉽게 말해 "특정 기능을 수행하는 코드 묶음"입니다. 파이썬에서는 def(define의 약자) 키워드를 사용해 함수를 만들(선언) 수 있습니다.

  • 선언: def 함수이름(매개변수): 형태로 정의하고 내부 코드를 작성합니다. 결과값을 반환할 때는 return을 사용합니다.
  • 호출: 함수이름(인자값) 형태로 불러와야 비로소 실행됩니다.

💡 함수 선언 및 호출 실습 코드

# 두 개의 값을 매개변수로 받아 두 수의 합을 반환하는 함수 선언
def num_sum(num1, num2):
    result = num1 + num2
    return result

# 함수 사용(호출)
print(num_sum(1, 2))  # 3 출력

💡 [썸머의 코딩 팁]
함수는 꼭 숫자만 더하란 법이 없죠? 매개변수의 자료형에 따라 문자열을 합치는 연산도 척척 해낸답니다. 이게 바로 파이썬의 유연함인 것 같아요!

print(num_sum('1', '2'))  # '12' (문자열 이어붙이기) 출력


2. 함수의 4가지 핵심 특성

파이썬 함수를 다룰 때 꼭 알아두어야 할 실전 특징들입니다!

  1. 매개변수의 순서: 함수를 호출할 때 전달하는 인자값은 매개변수의 순서대로 쏙쏙 들어갑니다.
    • 키워드 매개변수: 만약 순서가 헷갈린다면 함수이름(매개변수명2=값, 매개변수명1=값)처럼 직접 지정해서 호출하면 순서가 상관없어져요!
  1. 기본값(Default) 설정: 매개변수에 미리 기본값을 지정해 둘 수 있습니다. 인자값을 생략하면 기본값이 자동으로 적용돼서 유용해요.
  1. 리턴(Return)의 규칙: 리턴의 결과값은 언제나 하나입니다. 만약 여러 개의 값을 적으면 자동으로 패킹(Packing)되어서 튜플 형태로 반환됩니다!
  1. 입력값과 결과값의 유무: 함수의 생김새에 따라 입력값(매개변수)과 결과값(return)이 있을 수도 있고 없을 수도 있습니다.

💡 함수의 특성 실습 코드

# 1. 기본값 설정 예제 (제곱 함수)
def power_of_n(num, power=2):  # power 값에 기본값 2를 설정
    return num ** power

print(power_of_n(2, 4))  # 16 출력 (2의 4제곱)
print(power_of_n(2))     # 4 출력 (power 생략 시 기본값 2 적용되어 2의 제곱)

# 2. 여러 값 리턴하기 (튜플로 반환)
def add_sub(num1, num2):
    return num1 + num2, num1 - num2

print(add_sub(2, 4))  # (6, -2) 튜플 형태로 출력!

3. 입력값과 결과값 유무에 따른 함수 유형 4가지

함수는 입력과 출력의 존재 여부에 따라 크게 네 가지 형태로 나누어 볼 수 있어요.

  • 입력값 O, 결과값 O: 가장 기본적인 일반적인 형태입니다.
  • 입력값 X, 결과값 X: 단순히 내부 기능을 실행하고 끝나는 형태입니다 (예: 안내 문구 출력).
  • 입력값 X, 결과값 O: 입력은 없지만 실행 후 특정한 결과 데이터를 돌려줍니다.
  • 입력값 O, 결과값 X: 재료를 주면 내부적으로 처리만 하고 return이 없어 결과값을 반환하지 않습니다 (이때 print(함수호출)을 해보면 None이 찍혀요!).

💡 함수 유형 실습 코드

# 입력값 X, 결과값 X
def hi1():
    print('안녕!')

# 입력값 X, 결과값 O
def hi2():
    print('안녕!')
    return '안녕'

# 입력값 O, 결과값 X (return이 없는 경우)
def num_add(num1, num2):
    result = num1 + num2
    # return이 없으면 결과값으로 None을 반환합니다.

print(num_add(1, 2))  # None 출력

4. 알아두면 유용한 소소한 팁 🔍

  • 함수 정보 확인 (독스트링): 함수 소괄호 안에 커서를 두고 Shift + Tab을 누르면 이 함수가 어떤 기능을 하는지 안내창이 뜹니다. 내가 만든 함수에 설명을 적고 싶다면 함수 첫 줄에 따옴표 세 개로 독스트링(Docstring)을 적어보세요!
    def num_add2(num1, num2):
      '''두 수를 더해서 결과를 반환해 주는 함수입니다 : 독스트링'''
      result = num1 + num2
      return result
    

```


📝 오늘 공부를 마치며

💡 [썸머의 회고 코딩 팁]

  • 자바의 메서드와 똑 닮은 파이썬의 함수! 처음 코드를 길게 늘어쓰지 않고 이렇게 딱 알맞은 상자(함수)에 담아두니, 처음 만들 때는 머리가 조금 지끈거려도 나중에 가져다 쓰기가 너무 편해서 감탄했어요. 복잡한 로직일수록 함수로 쪼개는 습관, 정말 중요하고 재밌답니다! 🎯

다음 기록에서는 조건문·반복문 보충 수업 때 풀었던 알짜배기 실습 예제들을 싹 모아서 풀어보고, 드디어 새로운 세계인 라이브러리(넘파이, 판다스, 맷플롯립)로 넘어가 보겠습니다! 다음 빌드 일지에서 만나요! 🚀🦢✨