목차
1. 함수 Function란 무엇인가?
지금까지 Python의 변수, 데이터 타입, 입력과 출력, 조건문, 반복문까지 배웠습니다. 이제부터는 프로그래머가 반드시 알아야 하는 핵심 개념인 함수 Function를 배워보겠습니다.
함수는 단순히 코드를 묶는 기능이 아닙니다. 프로그램을 더 깔끔하게 만들고, 같은 코드를 여러 번 재사용할 수 있게 해주며, 대규모 프로그램을 만드는 데 반드시 필요한 기술입니다.
함수는 특정 작업을 수행하는 코드 묶음입니다.
예를 들어 아래와 같은 코드가 있다고 가정해보겠습니다.
print("안녕하세요")
print("반갑습니다")
print("좋은 하루 되세요")이 코드를 여러 곳에서 사용해야 한다면 매번 복사해서 붙여넣어야 합니다. 그 대신 함수로 만들 수 있습니다.
def greeting():
print("안녕하세요")
print("반갑습니다")
print("좋은 하루 되세요")실행할 때는 다음과 같이 호출합니다.
greeting()결과입니다.
안녕하세요
반갑습니다
좋은 하루 되세요한 번 만들어두면 언제든지 재사용할 수 있습니다.
2. 함수가 필요한 이유
함수를 사용하는 이유는 크게 네 가지입니다.
| 이유 | 설명 |
|---|---|
| 코드 재사용 | 같은 코드를 여러 번 작성할 필요가 없습니다. |
| 코드 가독성 향상 | 기능을 함수 이름으로 표현하면 코드의 의미가 더 명확해집니다. |
| 유지보수 편리 | 기능 변경 시 함수 하나만 수정하면 됩니다. |
| 프로그램 구조화 | 대형 프로그램을 역할별 함수로 나누어 관리할 수 있습니다. |
코드 재사용
def hello():
print("Hello Python")
hello()
hello()
hello()결과입니다.
Hello Python
Hello Python
Hello Python코드 가독성 향상
함수 없이 작성한 코드입니다.
price = 10000
vat = price * 0.1
total = price + vat
print(total)함수로 만들면 의미가 더 명확해집니다.
def calculate_price():
price = 10000
vat = price * 0.1
total = price + vat
print(total)
calculate_price()프로그램 구조화
- 로그인 함수
- 회원가입 함수
- 상품조회 함수
- 결제 함수
- 배송조회 함수
3. 함수 만들기
Python에서 함수는 def 키워드를 사용합니다.
def 함수이름():
실행할 코드예제입니다.
def hello():
print("안녕하세요")함수 실행입니다.
hello()결과입니다.
안녕하세요4. 함수 이름 규칙
좋은 함수 이름은 기능을 쉽게 이해할 수 있어야 합니다. 함수 이름만 보고도 어떤 역할인지 알 수 있어야 합니다.
| 구분 | 예시 | 설명 |
|---|---|---|
| 좋은 예 | calculate_total() | 총액 계산 역할을 예측할 수 있습니다. |
| 좋은 예 | print_report() | 보고서 출력 역할을 예측할 수 있습니다. |
| 좋은 예 | send_email() | 이메일 발송 역할을 예측할 수 있습니다. |
| 나쁜 예 | a() | 역할을 알기 어렵습니다. |
| 나쁜 예 | test1() | 임시 이름처럼 보여 유지보수에 불리합니다. |
| 나쁜 예 | abc() | 함수 목적이 드러나지 않습니다. |
5. 매개변수 Parameter란?
함수에 데이터를 전달할 수 있습니다.
def hello(name):
print(name + "님 안녕하세요")실행합니다.
hello("철수")
hello("영희")결과입니다.
철수님 안녕하세요
영희님 안녕하세요여기서 name을 매개변수 Parameter라고 합니다.
여러 개의 매개변수 사용하기
def add(a, b):
print(a + b)실행합니다.
add(10, 20)결과입니다.
30또 다른 예제입니다.
def introduce(name, age):
print("이름:", name)
print("나이:", age)실행합니다.
introduce("김철수", 25)결과입니다.
이름: 김철수
나이: 256. 반환값 Return이란?
지금까지 함수는 결과를 출력만 했습니다. 하지만 함수는 결과를 반환할 수도 있습니다.
def 함수():
return 값예제입니다.
def add(a, b):
return a + b사용합니다.
result = add(10, 20)
print(result)결과입니다.
307. print와 return의 차이
많은 초보자가 헷갈리는 부분입니다.
| 구분 | 역할 | 활용 가능성 |
|---|---|---|
| 화면에 출력만 합니다. | 출력된 값을 다시 계산에 사용하기 어렵습니다. | |
| return | 값을 함수 밖으로 돌려줍니다. | 반환된 값을 변수에 저장하고 조건문이나 계산에 활용할 수 있습니다. |
def add(a, b):
print(a + b)return
def add(a, b):
return a + breturn 값은 다음처럼 활용할 수 있습니다.
result = add(10, 20)
if result > 20:
print("20보다 큽니다")실무에서는 대부분 print보다 return을 사용해 결과를 다른 로직에 연결합니다.
8. 함수 안의 변수와 함수 밖의 변수
def test():
x = 100
print(x)
test()결과입니다.
100하지만 다음 코드를 함수 밖에서 실행하면 오류가 발생합니다.
print(x)오류입니다.
NameError함수 내부 변수는 함수 안에서만 사용할 수 있기 때문입니다. 이를 지역 변수 Local Variable이라고 합니다.
9. 함수 호출 흐름 이해하기
def hello():
print("안녕하세요")
print("시작")
hello()
print("종료")실행 순서입니다.
시작
안녕하세요
종료프로그램은 위에서 아래로 실행되다가 함수 호출을 만나면 함수 내부로 이동합니다. 함수 실행이 끝나면 다시 원래 위치로 돌아옵니다.
10. 실전 예제
실전 예제 1: 계산기 만들기
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
print(add(10, 5))
print(subtract(10, 5))
print(multiply(10, 5))결과입니다.
15
5
50실전 예제 2: BMI 계산기
def calculate_bmi(weight, height):
bmi = weight / (height ** 2)
return bmi
result = calculate_bmi(70, 1.75)
print(result)결과입니다.
22.85714285714285811. 초보자가 자주 하는 실수
함수를 실행하려면 hello가 아니라 hello()처럼 괄호를 붙여 호출해야 합니다.
return을 만나면 함수는 즉시 종료되므로 그 아래 코드는 실행되지 않습니다.
함수에 정의된 매개변수 개수와 전달하는 값의 개수가 맞아야 합니다.
괄호를 빼먹음
잘못된 코드입니다.
hello올바른 코드입니다.
hello()return 이후 코드 작성
def test():
return 100
print("실행안됨")return을 만나면 함수는 즉시 종료됩니다.
매개변수 개수 불일치
def add(a, b):
return a + b
add(10)결과입니다.
TypeError전달 개수가 맞아야 합니다.
함수 사용 전후 비교
함수 없이 작성한 코드입니다.
a = 10
b = 20
print(a + b)
a = 30
b = 40
print(a + b)
a = 50
b = 60
print(a + b)함수 사용 코드입니다.
def add(a, b):
return a + b
print(add(10, 20))
print(add(30, 40))
print(add(50, 60))훨씬 간결하고 유지보수가 쉬워집니다.
12. 정리와 다음 편 예고
오늘은 Python 함수 Function에 대해 배웠습니다.
- 함수는 특정 기능을 수행하는 코드 묶음입니다.
- def 키워드로 함수를 생성합니다.
- 함수는 여러 번 재사용할 수 있습니다.
- 매개변수 Parameter로 데이터를 전달합니다.
- return으로 결과를 반환합니다.
- 함수 내부 변수는 지역 변수 Local Variable입니다.
- 함수는 코드 재사용성과 유지보수성을 크게 향상시킵니다.
함수는 프로그래밍의 핵심입니다. 초보자는 단순히 문법을 외우기보다 직접 함수를 많이 만들어보는 것이 중요합니다.
간단한 계산기, BMI 계산기, 성적 계산기 등을 만들어 보면서 함수 사용에 익숙해지길 바랍니다.
- 리스트 List 이해하기
- 여러 개의 데이터를 한 번에 관리하는 방법
- 리스트 생성, 조회, 추가, 삭제와 반복 처리
