Responsive Advertisement
스터디 IT/AI
40대 남자의 IT/AI 공부

코드를 정리하는 마법 상자, 파이썬 함수 완벽 정리

코드를 정리하는 마법 상자, 파이썬 함수 완벽 정리
🐍 Python ✨ 입문자 ⏱ 10분 완성 📅 5일차

코드를 정리하는 마법 상자,
파이썬 함수(def) 완벽 정리

반복되는 코드를 매번 다시 타이핑하는 것은 시간 낭비입니다. 파이썬의 함수(def)를 사용하면 자주 쓰는 코드를 하나의 상자에 묶어 언제든지 꺼내 쓸 수 있습니다. 매개변수와 return까지 마스터하면 진짜 파이썬이 시작됩니다.

📅 2025년 5월 22일 📂 파이썬 기초 👤 파이썬 10분 독학

함수란 무엇인가? — 믹서기 비유로 이해하기

지금까지는 코드를 위에서 아래로 한 줄씩 실행했습니다. 하지만 "이름을 출력하기", "두 수를 더하기"처럼 동일한 동작을 여러 번 반복해야 할 때마다 같은 코드를 다시 쓰는 것은 매우 비효율적입니다.

함수(Function)는 이 문제를 해결합니다. 특정 동작을 수행하는 코드 뭉치에 이름을 붙여 두었다가, 필요할 때마다 그 이름만 불러 사용하는 방식입니다.

💡

믹서기 비유: 함수는 믹서기와 같습니다. 재료(매개변수)를 넣으면, 정해진 동작(함수 본문)을 거쳐 결과물(return 값)을 내놓습니다. 작동 방식을 매번 고민할 필요 없이 버튼만 누르면 됩니다.


함수의 구조 — 정의하고 호출하기

파이썬에서 함수를 만들 때는 def(define의 약자) 키워드를 사용합니다. 함수를 만드는 것을 "정의한다", 만든 함수를 실행하는 것을 "호출한다"고 표현합니다.

STEP 01

함수 정의하기

def 함수이름(매개변수): 형태로 첫 줄을 작성하고, 그 아래 들여쓰기(4칸 또는 탭)로 함수 본문을 작성합니다.

STEP 02

함수 호출하기

함수이름(인수) 형태로 함수를 실행합니다. 함수를 먼저 정의한 뒤에야 호출할 수 있습니다.

Python
# 1. 함수 정의하기 (만들기)
def say_hello(name):
    print(f"반갑습니다, {name}님! 오늘도 파이썬 열공하세요!")

# 2. 함수 호출하기 (사용하기)
say_hello("고봉이")
say_hello("관리자")
⚠️

들여쓰기는 필수! if·for와 마찬가지로, 함수 본문은 반드시 들여쓰기(공백 4칸)를 해야 합니다. 들여쓰기가 없으면 IndentationError가 발생합니다.


매개변수 — 함수 안으로 재료 전달하기

매개변수(Parameter)는 함수가 실행될 때 필요한 값을 받아오는 변수입니다. 함수 정의 시 괄호 안에 이름을 붙여 두면, 호출할 때 전달한 값이 그 이름으로 함수 내부에서 사용됩니다.

매개변수가 여러 개인 경우

쉼표(,)로 구분해 매개변수를 여러 개 지정할 수 있습니다.

Python
def introduce(name, age):
    print(f"이름: {name}, 나이: {age}세")

introduce("고봉이", 28)
# 출력 → 이름: 고봉이, 나이: 28세
💡

매개변수 vs 인수: 함수를 정의할 때 쓰는 변수를 매개변수(parameter), 함수를 호출할 때 실제로 전달하는 값을 인수(argument)라고 구분합니다. 헷갈릴 때는 "정의 = 매개변수, 호출 = 인수"로 기억하세요.


return — 결과값을 밖으로 꺼내오기

함수가 단순히 무언가를 화면에 출력하는 것에 그치지 않고, 계산 결과를 다른 변수에 저장하거나 다음 연산에 사용하고 싶다면 return을 사용합니다.

return을 만나면 함수는 즉시 종료되고, 그 값이 함수를 호출한 자리에 대입됩니다.

Python
def add_numbers(a, b):
    return a + b

result = add_numbers(10, 20)
print(result)  # 30이 출력됩니다.

# return 값을 바로 다른 연산에 활용하는 것도 가능합니다.
print(add_numbers(5, 3) * 2)  # 16

print vs return 차이

print()

화면에 출력만 함

결과를 눈으로 확인할 수 있지만, 변수에 저장하거나 추가 연산에 사용할 수 없습니다. 반환 값은 None입니다.

return

값을 돌려줌

결과를 변수에 저장하거나 다른 함수의 인수로 전달하는 등 자유롭게 활용할 수 있습니다.


자주 하는 실수와 주의사항

⚠️

함수는 정의 후에만 호출할 수 있습니다. say_hello()를 먼저 쓰고 나중에 def say_hello():를 작성하면 NameError가 발생합니다. 항상 정의 → 호출 순서로 작성하세요.

⚠️

return 없는 함수는 None을 반환합니다. result = say_hello("고봉이")처럼 return이 없는 함수의 결과를 변수에 담으면 None이 저장됩니다. 값이 필요하다면 반드시 return을 명시하세요.

💡

함수 이름 짓기 팁: 파이썬 관례상 함수 이름은 소문자와 밑줄(_)을 조합한 스네이크 케이스로 짓습니다. 예) calculate_total(), get_user_name()


자주 묻는 질문 (FAQ)

Q 매개변수가 없는 함수도 만들 수 있나요?

네, 가능합니다. 괄호 안을 비워 두면 됩니다. 예를 들어 def greet():처럼 작성하면 항상 동일한 동작을 수행하는 함수를 만들 수 있습니다.

Q 함수 안에서 또 다른 함수를 호출할 수 있나요?

물론입니다! 함수 안에서 다른 함수를 자유롭게 호출할 수 있습니다. 이를 활용하면 복잡한 로직을 여러 함수로 나눠 관리하기 쉬워집니다.

Q return을 여러 번 쓸 수 있나요?

한 함수 안에 return을 여러 개 작성할 수 있지만, 실행되는 것은 가장 먼저 만나는 return 하나뿐입니다. 조건에 따라 다른 값을 반환할 때 활용합니다. 예: if 조건: return A / return B

Q 파이썬의 print()도 함수인가요?

맞습니다! print()는 파이썬이 기본으로 제공하는 내장 함수(built-in function)입니다. 우리가 def로 직접 만드는 것은 사용자 정의 함수라고 구분합니다.


댓글 쓰기

💬 질문은 환영! 욕설, 홍보성 댓글은 삭제됩니다.