##Python/0. 파이썬 기초

7. 파이썬 기초 : 함수

허밍- 2025. 4. 4. 11:22

안녕하세요, 허밍입니다! 😊
프로그래밍을 하다 보면 같은 코드가 여러 번 반복되는 상황이 자주 생기죠?
이럴 때 **함수(function)**를 사용하면 코드를 간결하고 효율적으로 작성할 수 있습니다.

오늘은 파이썬 함수의 개념과 기본적인 사용법을 배우는 시간을 가져볼게요! 🚀


📌 1. 함수(Function)란?

**함수(Function)**는 특정 기능을 수행하는 코드의 묶음이에요.
필요할 때마다 함수를 호출해서 사용할 수 있고,
코드의 재사용성을 높여서 유지보수를 쉽게 해줍니다.

🛠️ 함수의 주요 장점

코드 재사용 가능 → 같은 코드 반복 X
가독성 향상 → 코드가 길어져도 깔끔하게 유지
유지보수 용이 → 수정할 때 한 곳만 변경하면 됨
모듈화 가능 → 프로그램을 작은 단위로 나누어 개발 가능


📌 2. 함수 정의와 호출

파이썬에서 함수를 정의할 때는 def 키워드를 사용합니다.
다음은 기본적인 함수의 형태입니다.

def 함수이름(매개변수):
    실행할 코드
    return 반환값

✔️ 함수 정의 (define) → def 키워드를 사용
✔️ 매개변수 (parameter) → 함수에 전달할 값 (선택 사항)
✔️ return → 함수 실행 결과를 반환하는 값 (선택 사항)


📌 3. 함수의 기본 사용법

🎯 3-1. 매개변수 없는 함수

매개변수 없이 단순히 실행되는 함수입니다.

def say_hello():
    print("안녕하세요!")

# 함수 호출
say_hello()

🟢 실행 결과:

안녕하세요!

✔️ say_hello()를 호출하면 함수 내부 코드가 실행됩니다.
✔️ return이 없으므로, 단순히 print()만 실행됩니다.


🎯 3-2. 매개변수가 있는 함수

함수에 값을 전달해서 실행할 수도 있습니다.

def greet(name):
    print(f"안녕하세요, {name}님!")

# 함수 호출
greet("허밍")
greet("파이썬")

🟢 실행 결과:

안녕하세요, 허밍님!
안녕하세요, 파이썬님!

✔️ greet("허밍")을 호출하면 name에 "허밍"이 들어감
✔️ print(f"안녕하세요, {name}님!")가 실행됨


🎯 3-3. 반환값이 있는 함수 (return 사용)

return을 사용하면 함수의 결과를 저장해서 활용할 수 있습니다.

def add(a, b):
    return a + b

# 함수 호출 및 결과 저장
result = add(3, 5)
print(f"3 + 5 = {result}")

🟢 실행 결과:

3 + 5 = 8

✔️ return을 사용하면 함수의 결과값을 저장하거나 다른 연산에 활용할 수 있음


📌 4. 기본값을 갖는 매개변수

함수를 호출할 때 매개변수를 입력하지 않아도 기본값이 설정되도록 만들 수 있어요.

def introduce(name="익명", age=20):
    print(f"이름: {name}, 나이: {age}")

introduce()  # 매개변수 없이 호출
introduce("허밍", 25)  # 매개변수 입력

🟢 실행 결과:

이름: 익명, 나이: 20
이름: 허밍, 나이: 25

✔️ introduce()를 호출할 때 값을 입력하지 않으면 기본값(익명, 20)이 사용됨
✔️ 기본값이 있는 매개변수는 선택적으로 값 입력이 가능


📌 5. 여러 개의 매개변수 받기 (*args)

만약 매개변수의 개수가 정해지지 않았다면 어떻게 할까요?
*args를 사용하면 여러 개의 값을 리스트처럼 전달할 수 있습니다.

def sum_numbers(*numbers):
    return sum(numbers)

print(sum_numbers(1, 2, 3, 4, 5))  # 여러 개의 숫자 입력 가능

🟢 실행 결과:

15

✔️ *args를 사용하면 여러 개의 인수를 하나의 튜플로 받아 처리할 수 있음
✔️ sum(numbers)는 전달된 모든 값을 더한 결과를 반환


✅ 오늘 배운 내용 정리

오늘은 파이썬 함수의 기본 개념과 사용법을 배웠어요!
✔️ 함수는 코드의 재사용성을 높이고 가독성을 개선해줌
✔️ def 함수이름():을 사용하여 함수 정의
✔️ 매개변수를 전달할 수도 있고, return으로 값을 반환 가능
✔️ *args를 사용하면 여러 개의 값을 받을 수 있음

이제 함수의 더 다양한 활용법을 배우면 실전에서도 훨씬 유용하게 사용할 수 있어요!
다음 포스팅에서는 람다 함수, 재귀 함수, 모듈화 등을 다룰 예정이니 기대해주세요! 😊