안녕하세요! 스마트인재개발원 파이썬 공부 기록입니다.
지금까지 긴 코드를 한 줄씩 위에서 아래로 실행해 왔다면, 이번 시간에는 코드를 깔끔하고 효율적으로 묶어두는 '함수(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가지 핵심 특성
파이썬 함수를 다룰 때 꼭 알아두어야 할 실전 특징들입니다!
- 매개변수의 순서: 함수를 호출할 때 전달하는 인자값은 매개변수의 순서대로 쏙쏙 들어갑니다.
- 키워드 매개변수: 만약 순서가 헷갈린다면
함수이름(매개변수명2=값, 매개변수명1=값)처럼 직접 지정해서 호출하면 순서가 상관없어져요!
- 키워드 매개변수: 만약 순서가 헷갈린다면
- 기본값(Default) 설정: 매개변수에 미리 기본값을 지정해 둘 수 있습니다. 인자값을 생략하면 기본값이 자동으로 적용돼서 유용해요.
- 리턴(Return)의 규칙: 리턴의 결과값은 언제나 하나입니다. 만약 여러 개의 값을 적으면 자동으로 패킹(Packing)되어서 튜플 형태로 반환됩니다!
- 입력값과 결과값의 유무: 함수의 생김새에 따라 입력값(매개변수)과 결과값(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
```
📝 오늘 공부를 마치며
💡 [썸머의 회고 코딩 팁]
- 자바의 메서드와 똑 닮은 파이썬의 함수! 처음 코드를 길게 늘어쓰지 않고 이렇게 딱 알맞은 상자(함수)에 담아두니, 처음 만들 때는 머리가 조금 지끈거려도 나중에 가져다 쓰기가 너무 편해서 감탄했어요. 복잡한 로직일수록 함수로 쪼개는 습관, 정말 중요하고 재밌답니다! 🎯
다음 기록에서는 조건문·반복문 보충 수업 때 풀었던 알짜배기 실습 예제들을 싹 모아서 풀어보고, 드디어 새로운 세계인 라이브러리(넘파이, 판다스, 맷플롯립)로 넘어가 보겠습니다! 다음 빌드 일지에서 만나요! 🚀🦢✨
'Development(개발 공부) > Python & AI' 카테고리의 다른 글
| [Python] 파이썬 기초 쉬어가기: 눈물겨운 조건문·반복문 보충수업과 손코딩의 추억 💻🍔✨ (0) | 2026.10.28 |
|---|---|
| [Python] 파이썬 기초 13: 이름표로 데이터를 척척! 딕셔너리(Dictionary) 마스터하기 💻✨ (0) | 2026.10.26 |
| [Python] 파이썬 기초 12: 만능 일꾼 `for` 반복문과 `range()`, 그리고 리스트의 만남 💻✨ (0) | 2026.10.23 |
| [Python] 파이썬 기초 11: 조건이 참인 동안 실행되는 `while` 반복문과 무한루프 탈출하기 💻✨ (0) | 2026.10.22 |
| [Python] 파이썬 기초 10: 리스트 자유자재로 다루기(함수)와 튜플(Tuple)의 모든 것 💻✨ (0) | 2026.10.20 |