🐨CoalaCoding
DocsExamplesTry itBoardB반
🐨CoalaCoding

개발자를 위한 한국어 웹 기술 문서

문서

  • JavaScript
  • Web Publishing
  • React
  • Python

커뮤니티

  • 게시판
  • 예제 모음
  • Try it 에디터

기타

  • GitHub
  • 관리자
© 2026 CoalaCoding. All rights reserved.
  • 01_파이썬 기본문법
  • 02_파이썬 변수
  • 03_파이썬 출력
  • 04_파이썬 기본 자료형
  • 05_파이썬 집합 자료형
  • 00-파이썬 바이브 코딩
  • 1회차: 파이썬 소개 & 변수와 자료형
  • 2회차: 연산자 & 문자열
  • 3회차: 조건문
  • 4회차: 반복문
  • 5회차: 함수(Function)
  • 6회차: 리스트 & 딕셔너리
  • 7회차: 파이썬과 UI연결
  • 01_사진수집
  • 02_네이버 영화 리뷰 크롤링
  • 03_PPT작성
  • 04_이메일전송
  • 05-파이썬 챗봇 만들기
  • 06-주식분석보고서
  • 허깅페이스 무료 Inference API - OTT 앱 활용 가이드
  1. 홈
  2. 문서
  3. Backend
  4. Python
  5. 5회차: 함수(Function)

5회차: 함수(Function)

코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.

구문

5회차: 함수(Function)

선수 학습: 4회차 (반복문)


학습 목표

  • 함수(Function)의 개념과 필요성을 이해한다.
  • def(데프)로 함수를 정의하고 호출할 수 있다.
  • 매개변수(Parameter)와 반환값(Return Value)을 활용할 수 있다.
  • 지역변수(Local Variable)와 전역변수(Global Variable)를 이해한다.

5.1. 함수란?

5.1.1. 함수의 개념

함수(Function)는 특정 작업을 수행하는 코드 묶음이다. 한 번 정의해두면 필요할 때마다 이름만 불러서 실행할 수 있다.

일상의 예를 들면, 세탁기를 생각할 수 있다. 세탁기의 "표준 세탁" 버튼을 누르면 물 넣기 → 세제 투입 → 세탁 → 헹굼 → 탈수까지 모든 과정이 자동으로 실행된다. 매번 모든 단계를 수동으로 할 필요가 없다. 파이썬의 함수도 마찬가지이다.

5.1.2. 함수가 없을 때의 문제점

친구 3명의 점수를 평균 계산하는 코드를 함수 없이 작성한다고 가정한다.

# 홍길동 성적
s1 = 80
s2 = 90
s3 = 70
avg = (s1 + s2 + s3) / 3
print(f"홍길동 평균: {avg:.1f}")

# 김영희 성적
s1 = 95
s2 = 85
s3 = 75
avg = (s1 + s2 + s3) / 3
print(f"김영희 평균: {avg:.1f}")

# 이철수 성적
s1 = 60
s2 = 70
s3 = 65
avg = (s1 + s2 + s3) / 3
print(f"이철수 평균: {avg:.1f}")

위 코드는 같은 계산 구조가 3번 반복된다. 만약 평균 계산 방식을 바꾸고 싶다면 3곳을 모두 수정해야 한다. 함수를 사용하면 이 문제를 해결할 수 있다.


5.2. 함수 정의와 호출

5.2.1. 함수 만들기 — def(데프)

def 키워드로 함수를 정의한다.

def 함수이름():
    실행할 코드

5.2.2. 함수 정의와 호출 예시

def greet():
    print("안녕하세요!")
    print("파이썬 수업에 오신 것을 환영합니다.")

greet()
greet()
greet()
줄설명
1def 키워드 뒤에 함수 이름 greet 를 쓰고 괄호 () 와 콜론 : 으로 마친다.
2~3함수가 호출될 때 실행될 코드를 들여쓰기하여 작성한다. 이 부분을 함수 본문(Body) 이라 한다.
5~7greet() 처럼 함수 이름 뒤에 () 를 붙이면 함수를 호출(Call) 한다. 3번 호출했으므로 함수 본문이 3번 실행된다.

실행 결과

안녕하세요!
파이썬 수업에 오신 것을 환영합니다.
안녕하세요!
파이썬 수업에 오신 것을 환영합니다.
안녕하세요!
파이썬 수업에 오신 것을 환영합니다.
📝NOTE

함수는 정의만 해도 실행되지 않는다. 반드시 호출해야 실행된다. 함수를 정의하는 것은 레시피를 작성하는 것이고, 호출하는 것은 그 레시피대로 실제로 요리하는 것이다.


5.3. 매개변수(Parameter)와 인수(Argument)

5.3.1. 매개변수란?

함수를 호출할 때 외부에서 값을 전달받을 수 있다. 이 값을 받기 위해 함수 괄호 안에 선언하는 변수를 매개변수(Parameter) 라 한다.

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

greet("홍길동")
greet("김영희")
greet("이철수")
줄설명
1함수 괄호 안의 name 이 매개변수이다. 함수 안에서만 사용할 수 있는 변수이다.
2매개변수 name 을 f-string 안에서 사용한다.
4"홍길동" 을 전달하여 호출한다. 함수 안에서 name = "홍길동" 이 된다.
5"김영희" 를 전달하여 호출한다. name = "김영희" 가 된다.
6"이철수" 를 전달하여 호출한다. name = "이철수" 가 된다.

실행 결과

안녕하세요, 홍길동님!
안녕하세요, 김영희님!
안녕하세요, 이철수님!

호출할 때 전달하는 값 "홍길동", "김영희", "이철수" 를 인수(Argument) 라 한다.

5.3.2. 여러 개의 매개변수

매개변수는 쉼표(,)로 구분하여 여러 개를 사용할 수 있다.

def intro(name, job, lv):
    print(f"이름: {name} | 직업: {job} | 레벨: {lv}")

intro("홍길동", "전사", 30)
intro("김영희", "마법사", 25)
줄설명
1세 개의 매개변수를 쉼표로 구분하여 선언한다.
4세 인수를 순서대로 전달한다. name="홍길동", job="전사", lv=30 이 된다.

실행 결과

이름: 홍길동 | 직업: 전사 | 레벨: 30
이름: 김영희 | 직업: 마법사 | 레벨: 25

5.4. 반환값(Return Value)

5.4.1. return이란?

return 키워드는 함수 실행 결과를 호출한 곳으로 돌려보낸다.

지금까지 함수 안에서 print() 로 출력만 했다. 하지만 계산 결과를 다른 변수에 저장하거나 다른 계산에 사용하려면 return 으로 값을 반환해야 한다.

5.4.2. return 기본 사용법

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

x = add(10, 20)
print(x)
print(add(5, 7))
print(add(3, 4) + add(1, 2))
줄설명
1두 개의 매개변수 a, b 를 받는 함수를 정의한다.
2a + b 의 결과를 result 에 저장한다.
3return result 로 result 값을 호출한 곳으로 돌려보낸다.
5add(10, 20) 은 30 을 반환한다. 이 값이 x 에 저장된다.
6x 의 값 30 을 출력한다.
7add(5, 7) 은 12 를 반환한다. 이 반환값이 바로 print() 에 전달된다.
8add(3, 4) 는 7, add(1, 2) 는 3 을 반환한다. 7 + 3 = 10 을 출력한다.

실행 결과

30
12
10

5.4.3. print 와 return 의 차이

def calc_print(a, b):
    print(a + b)       # 화면에 출력만 한다. 값을 돌려주지 않는다.

def calc_return(a, b):
    return a + b       # 계산 결과를 돌려준다.

result1 = calc_print(3, 4)
result2 = calc_return(3, 4)

print("calc_print 반환값:", result1)
print("calc_return 반환값:", result2)
줄설명
7calc_print(3, 4) 는 7 을 화면에 출력하지만, 아무것도 돌려주지 않는다. result1 에는 None 이 저장된다.
8calc_return(3, 4) 는 7 을 result2 에 저장한다.

실행 결과

7
calc_print 반환값: None
calc_return 반환값: 7
💡TIP

계산 결과를 나중에 사용해야 한다면 return 을 사용한다. 단순히 출력만 하고 끝내려면 print 를 사용한다. 실무에서는 대부분 return 을 사용한다.

5.4.4. 여러 값 반환하기

return 뒤에 쉼표로 구분하면 여러 값을 한 번에 반환할 수 있다.

def min_max(nums):
    return min(nums), max(nums)

scores = [85, 92, 78, 95, 60]
low, high = min_max(scores)
print(f"최저: {low}점, 최고: {high}점")
줄설명
2min(nums) 는 리스트에서 최솟값, max(nums) 는 최댓값을 반환하는 내장 함수이다. 두 값을 묶어서 반환한다.
5반환된 두 값을 low, high 두 변수에 나누어 저장한다.

실행 결과

최저: 60점, 최고: 95점

5.5. 기본값(Default) 매개변수

5.5.1. 기본값이란?

매개변수에 기본값을 미리 지정할 수 있다. 함수를 호출할 때 해당 인수를 전달하지 않으면 기본값이 사용된다.

def intro(name, job="모험가", lv=1):
    print(f"이름: {name} | 직업: {job} | 레벨: {lv}")

intro("홍길동")
intro("김영희", "마법사")
intro("이철수", "전사", 50)
줄설명
1job 의 기본값은 "모험가", lv 의 기본값은 1 이다.
4name 만 전달했으므로 job="모험가", lv=1 이 사용된다.
5name 과 job 을 전달했으므로 lv=1 기본값이 사용된다.
6세 값 모두 전달했으므로 기본값이 사용되지 않는다.

실행 결과

이름: 홍길동 | 직업: 모험가 | 레벨: 1
이름: 김영희 | 직업: 마법사 | 레벨: 1
이름: 이철수 | 직업: 전사 | 레벨: 50
📝NOTE

기본값이 있는 매개변수는 반드시 기본값이 없는 매개변수보다 뒤에 위치해야 한다. def f(job="모험가", name): 처럼 쓰면 오류가 발생한다.


5.6. 지역변수(Local Variable)와 전역변수(Global Variable)

5.6.1. 지역변수

함수 안에서 만든 변수는 지역변수(Local Variable) 이다. 함수 안에서만 사용할 수 있으며 함수가 종료되면 사라진다.

def calc():
    x = 100           # 지역변수
    print("함수 안:", x)

calc()
# print(x)           # ← 오류! 함수 밖에서는 x를 사용할 수 없다.
줄설명
2x = 100 은 calc 함수 안에서 만들어진 지역변수이다.
3함수 안에서는 x 를 사용할 수 있다.
6주석 처리된 줄처럼 함수 밖에서 x 를 사용하면 NameError 오류가 발생한다.

5.6.2. 전역변수

함수 밖에서 만든 변수는 전역변수(Global Variable) 이다. 코드 어디서든 사용할 수 있다.

title = "파이썬 게임"   # 전역변수

def show_title():
    print(title)        # 함수 안에서 전역변수 사용 가능

show_title()
print(title)            # 함수 밖에서도 사용 가능

5.7. 종합 예제: 계산기 프로그램

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

def sub(a, b):
    return a - b

def mul(a, b):
    return a * b

def div(a, b):
    if b == 0:
        return "0으로 나눌 수 없습니다."
    return a / b

def calc(a, b, op):
    if op == "+":
        return add(a, b)
    elif op == "-":
        return sub(a, b)
    elif op == "*":
        return mul(a, b)
    elif op == "/":
        return div(a, b)
    else:
        return "알 수 없는 연산자입니다."

a = float(input("첫 번째 숫자: "))
b = float(input("두 번째 숫자: "))
op = input("연산자 (+, -, *, /): ")

result = calc(a, b, op)
print(f"결과: {result}")
줄설명
1~2더하기 함수. 두 수를 더한 결과를 반환한다.
4~5빼기 함수. 두 수를 뺀 결과를 반환한다.
7~8곱하기 함수. 두 수를 곱한 결과를 반환한다.
10~12나누기 함수. b 가 0이면 오류 문자열을 반환하고, 아니면 나눗셈 결과를 반환한다.
14~23연산자에 따라 알맞은 함수를 호출하여 결과를 반환하는 통합 계산 함수이다.
25~27사용자에게 두 숫자와 연산자를 입력받는다.
29~30calc() 함수를 호출하여 결과를 출력한다.

5.8. 실습 과제

과제 1. 섭씨-화씨 변환기

섭씨(℃)를 화씨(℉)로, 화씨를 섭씨로 변환하는 함수를 각각 만들고, 사용자에게 값을 입력받아 두 결과를 모두 출력한다.

  • 섭씨 → 화씨 공식: 화씨 = 섭씨 × 9 / 5 + 32
  • 화씨 → 섭씨 공식: 섭씨 = (화씨 - 32) × 5 / 9

과제 2. 평균 계산기 함수 개선

3개의 점수를 매개변수로 받아 평균을 반환하는 함수를 만들고, 함수를 3회 호출하여 각 학생의 평균을 출력한다.

목차

  • 구문