Python은 배우기 쉽고 강력한 프로그래밍 언어로, 함수(function)를 사용하여 코드의 재사용성을 높이고, 코드의 가독성을 개선할 수 있습니다. 이 글에서는 Python 함수의 정의와 활용법에 대해 알아보겠습니다. 함수를 사용하면 코드를 모듈화하고, 반복적인 작업을 쉽게 처리할 수 있습니다.
1. 함수란 무엇인가?
함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때 호출하여 사용할 수 있습니다. 함수는 입력 값을 받아 처리하고, 결과를 반환할 수 있습니다. Python에서는 def
키워드를 사용하여 함수를 정의합니다.
2. 함수 정의
함수를 정의하기 위해 def
키워드와 함수 이름, 그리고 괄호 안에 매개변수 목록을 작성합니다. 함수 본문은 들여쓰기로 구분됩니다.
def greet(name):
print(f"안녕하세요, {name}님!")
이 함수는 name
이라는 매개변수를 받아서, “안녕하세요, {name}님!”이라는 메시지를 출력합니다.
3. 함수 호출
정의된 함수를 호출하려면 함수 이름과 괄호 안에 인수를 전달하면 됩니다.
greet("Alice")
이 코드는 “안녕하세요, Alice님!”을 출력합니다.
4. 반환값이 있는 함수
함수는 값을 반환할 수 있습니다. return
키워드를 사용하여 반환 값을 지정합니다.
def add(a, b):
return a + b
이 함수는 두 숫자를 더한 결과를 반환합니다.
result = add(3, 5)
print(result) # 8
이 코드는 add
함수를 호출하여 3과 5를 더한 결과인 8을 출력합니다.
5. 기본 매개변수 값
함수 매개변수에 기본 값을 지정할 수 있습니다. 기본 값을 지정하면 함수 호출 시 해당 인수를 생략할 수 있습니다.
def greet(name="Guest"):
print(f"안녕하세요, {name}님!")
이 함수는 name
매개변수에 기본 값 “Guest”를 가집니다.
greet() # 안녕하세요, Guest님!
greet("Alice") # 안녕하세요, Alice님!
6. 가변 인수
함수에 전달되는 인수의 개수가 가변적인 경우, *
을 사용하여 가변 인수를 받을 수 있습니다.
def add(*numbers):
return sum(numbers)
이 함수는 임의의 개수의 숫자를 받아 그 합을 반환합니다.
print(add(1, 2, 3)) # 6
print(add(4, 5, 6, 7)) # 22
7. 키워드 인수
함수는 키워드 인수를 받을 수 있습니다. **
을 사용하여 키워드 인수를 사전 형태로 받을 수 있습니다.
def print_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
이 함수는 임의의 개수의 키워드 인수를 받아 정보를 출력합니다.
print_info(name="Alice", age=25, city="Seoul")
이 코드는 다음과 같이 출력합니다:
name: Alice
age: 25
city: Seoul
8. 람다 함수
람다 함수는 익명 함수로, lambda
키워드를 사용하여 정의합니다. 람다 함수는 간단한 함수를 한 줄로 작성할 수 있습니다.
square = lambda x: x ** 2
이 람다 함수는 입력 값 x
를 제곱하여 반환합니다.
print(square(5)) # 25
람다 함수는 주로 간단한 연산을 수행하거나, 다른 함수의 인수로 사용될 때 유용합니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # [1, 4, 9, 16, 25]
9. 함수의 활용 예제
함수를 사용하여 더 복잡한 프로그램을 작성할 수 있습니다. 예를 들어, 간단한 계산기를 함수로 구현해보겠습니다.
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
return "오류: 0으로 나눌 수 없습니다."
return a / b
def calculator():
num1 = float(input("첫 번째 숫자를 입력하세요: "))
operator = input("연산자를 입력하세요 (+, -, *, /): ")
num2 = float(input("두 번째 숫자를 입력하세요: "))
if operator == "+":
result = add(num1, num2)
elif operator == "-":
result = subtract(num1, num2)
elif operator == "*":
result = multiply(num1, num2)
elif operator == "/":
result = divide(num1, num2)
else:
result = "오류: 잘못된 연산자입니다."
print("결과:", result)
calculator()
이 코드는 사용자로부터 두 숫자와 연산자를 입력받아, 해당 연산을 수행하고 결과를 출력하는 간단한 계산기 프로그램입니다.
10. 함수의 장점
함수를 사용하면 다음과 같은 장점이 있습니다:
- 재사용성: 한 번 정의한 함수는 여러 번 호출하여 사용할 수 있습니다.
- 모듈화: 코드를 기능별로 나누어 모듈화할 수 있어, 유지보수와 수정이 용이합니다.
- 가독성: 함수 이름과 매개변수를 통해 코드의 목적을 명확히 할 수 있어, 가독성이 향상됩니다.
결론
Python 함수는 코드를 모듈화하고 재사용성을 높이는 강력한 도구입니다. 함수 정의와 호출, 반환값, 기본 매개변수 값, 가변 인수, 키워드 인수, 람다 함수 등 다양한 기능을 통해 복잡한 작업을 간단하고 효율적으로 처리할 수 있습니다. 함수의 기본적인 개념과 활용법을 익히면 더 복잡한 프로그램을 작성하는 데 큰 도움이 됩니다. Python의 유연성과 강력한 기능을 활용하여 다양한 프로젝트에 도전해보세요. Python 함수를 통해 더욱 깔끔하고 효율적인 코드를 작성할 수 있을 것입니다.