티스토리 뷰
목차
프로그램을 개발하다보면 지금까지의 경험상으로 개발자로서, 함수를 이해하는 것이 얼마나 중요한지 잘 알고 있습니다. 객체지향 프로그래밍이든 절차지향이든 Java로 개발하던지 PHP, Javascript 언어로 개발할때도 항상 많이 사용하는게 함수입니다. 함수는 코드의 재사용성을 높이고, 구조를 더 효율적으로 만들며, 유지보수를 쉽게 하는 핵심 개념입니다. 초보 단계에서 함수를 확실히 이해하고 익히면 나중에 더 복잡한 코드를 작성할 때 큰 도움이 됩니다. 그래서 이번 글에서는 Python 함수에 대해 기본 개념부터 실습 예제까지 꼼꼼히 설명하겠습니다.
1. Python 함수란 무엇인가?
함수는 특정 작업을 수행하는 코드 블록입니다. 함수는 입력(매개변수)을 받아서 처리한 후 출력(반환값)을 내보낼 수 있으며, 여러 번 재사용할 수 있습니다. 함수를 사용하면 코드가 더 간결하고 구조적이며, 유지보수가 용이해집니다.
예를 들어, 수학에서의 함수 f(x) = x + 1과 같이, Python에서도 특정 입력값을 받아 처리를 수행하고 결과를 반환할 수 있습니다.
함수의 기본 구조:
def 함수이름(매개변수):
"""함수에 대한 설명(docstring)"""
수행할 코드
return 반환값
이 구조를 통해 함수를 정의하고 필요할 때 호출하여 재사용할 수 있습니다.
2. Python 함수 정의하기
Python에서 함수를 정의하려면 def 키워드를 사용합니다. 함수 이름을 정의하고, 필요한 매개변수를 설정한 뒤, 함수의 기능을 구현합니다. 반환값이 있는 경우 return 문을 사용하여 값을 반환합니다.
기본 구조
def 함수이름(매개변수1, 매개변수2, ...):
"""함수에 대한 설명(docstring)"""
수행할 코드
return 반환값
예를 들어, 간단한 인사말을 출력하는 함수는 다음과 같이 정의할 수 있습니다:
def greet():
"""인사말을 출력하는 함수"""
print("안녕하세요!")
이 함수는 호출할 때마다 "안녕하세요!"를 출력합니다.
3. Python 함수 호출하기
함수를 정의했다면 이제 호출하여 사용할 수 있습니다. 함수 호출은 함수 이름 뒤에 괄호를 붙여 실행하는 방식으로 이루어집니다.
예시:
def greet():
print("안녕하세요!")
# 함수 호출
greet()
출력:
안녕하세요!
이렇게 함수는 한 번 정의하면 여러 번 호출하여 사용할 수 있습니다.
4. 매개변수가 있는 함수
함수에 매개변수를 설정하여 다양한 입력값을 받을 수 있습니다. 이를 통해 함수의 유연성을 높이고 다양한 상황에 대응할 수 있습니다.
예시: 이름을 받아 인사하는 함수
def greet(name):
print(f"안녕하세요, {name}님!")
# 함수 호출
greet("철수")
greet("영희")
출력:
안녕하세요, 철수님!
안녕하세요, 영희님!
매개변수를 통해 사용자마다 다른 인사말을 출력할 수 있게 됩니다.
5. 반환값이 있는 함수
함수는 return 문을 사용하여 값을 반환할 수 있습니다. 반환된 값은 다른 연산이나 변수에 저장하여 사용할 수 있습니다.
예시: 두 수를 더하는 함수
def add(a, b):
return a + b
# 함수 호출 및 결과 저장
result = add(3, 5)
print("결과:", result)
출력:
결과: 8
함수의 반환값을 이용하여 계산 결과를 다른 작업에 사용할 수 있습니다.
6. 기본값 매개변수
함수의 매개변수에 **기본값(default value)**을 설정하면, 인자를 전달하지 않아도 기본값이 사용됩니다.
예시: 기본 인사말을 사용하는 함수
def greet(name="손님"):
print(f"안녕하세요, {name}님!")
# 매개변수 없이 호출
greet()
# 매개변수와 함께 호출
greet("철수")
출력:
안녕하세요, 손님님!
안녕하세요, 철수님!
7. 가변 인자 (*args, **kwargs)
Python 함수는 가변 인자(*args)와 키워드 가변 인자(**kwargs)를 사용하여 다양한 개수의 인자를 받을 수 있습니다.
- *위치 가변 인자 (args)
여러 개의 인자를 튜플 형태로 받아 처리할 수 있습니다.
def add_numbers(*args):
total = 0
for num in args:
total += num
return total
print(add_numbers(1, 2, 3)) # 출력: 6
print(add_numbers(5, 10, 15, 20)) # 출력: 50
- **키워드 가변 인자 (kwargs)
키-값 쌍의 형태로 인자를 딕셔너리로 받아옵니다.
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_kwargs(name="철수", age=20, city="서울")
출력:
name: 철수
age: 20
city: 서울
8. Python 함수의 스코프와 전역 변수
함수 내에서 선언된 변수는 **지역 변수(local variable)**로 함수 내부에서만 사용됩니다. 전역 변수는 프로그램 전체에서 사용할 수 있지만, 함수 내부에서 변경하려면 global 키워드를 사용해야 합니다.
x = 10 # 전역 변수
def func():
x = 5 # 지역 변수
print("함수 내부 x:", x)
func()
print("함수 외부 x:", x)
출력:
함수 내부 x: 5
함수 외부 x: 10
9. 함수 실습 예제: 섭씨를 화씨로 변환하는 프로그램
문제:
섭씨 온도를 화씨 온도로 변환하는 함수를 작성하세요.
def celsius_to_fahrenheit(celsius):
"""섭씨 온도를 화씨 온도로 변환하는 함수"""
fahrenheit = celsius * 9/5 + 32
return fahrenheit
# 함수 호출
c = float(input("섭씨 온도를 입력하세요: "))
f = celsius_to_fahrenheit(c)
print(f"화씨 온도: {f}")
결론: Python 함수는 코드의 핵심입니다
Python 함수는 코드의 재사용성을 높이고 프로그램의 구조를 개선하는 필수적인 요소입니다. 초보자일수록 함수를 충분히 연습하고 익혀두면 나중에 복잡한 코드나 프로젝트를 다룰 때 큰 도움이 됩니다. 함수의 다양한 기능을 활용하여 더 효율적이고 직관적인 코드를 작성해보세요!
추가 학습 팁
- 재귀 함수와 람다 함수를 이해하고 연습해보세요.
- 다양한 매개변수와 반환값을 사용하는 함수를 만들어 보세요.
- 여러 조건을 처리하는 복잡한 함수를 작성하여 실습하세요.
Python 함수에 대해 더 많은 학습을 통해, 코드를 구조적이고 효율적으로 작성하는 능력을 키우시길 바랍니다!
위 글은 'Python 기본 문법 - 함수'에 대해 초보자를 위한 학습 자료로 구성하였습니다.