Python의 함수(Function)는 프로그램을 구조화하고 재사용성을 높이는 데 중요한 역할을 합니다. 함수를 사용하면 반복적인 코드를 줄이고, 가독성을 높이며, 유지보수를 쉽게 할 수 있습니다. 이 장에서는 Python에서 함수를 정의하고 호출하는 방법을 살펴봅니다.
1. 함수란?
함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때 호출하여 실행할 수 있습니다.
• 입력(매개변수): 함수가 작업을 수행하기 위해 필요한 값.
• 출력(반환값): 함수가 작업을 완료한 후 반환하는 결과.
2. 함수 정의
함수는 def 키워드를 사용하여 정의합니다.
㉮ 함수 정의의 기본 구조
def 함수이름(매개변수1, 매개변수2, ...):
실행할 코드
return 반환값
㉯ 매개변수 없는 함수
매개변수가 없는 함수는 단순히 호출만으로 실행됩니다.
예제: 인사말 출력
def say_hello():
print("안녕하세요!")
# 함수 호출
say_hello()
결과:
안녕하세요!
㉰ 매개변수가 있는 함수
함수에 입력 값(매개변수)을 전달하여 동적으로 작업을 수행합니다.
예제: 두 숫자의 합 계산
def add_numbers(a, b):
print(f"두 숫자의 합: {a + b}")
# 함수 호출
add_numbers(5, 7)
결과:
두 숫자의 합: 12
㉱ 반환값이 있는 함수
return 문을 사용하여 함수의 결과를 반환합니다.
예제: 두 숫자의 곱 반환
def multiply_numbers(a, b):
return a * b
# 함수 호출
result = multiply_numbers(4, 5)
print(f"두 숫자의 곱: {result}")
결과:
두 숫자의 곱: 20
3. 함수 호출
함수를 호출할 때는 함수 이름 뒤에 괄호를 붙입니다.
필요한 경우 매개변수를 괄호 안에 전달합니다.
㉮ 기본 호출
def greet():
print("Hello!")
greet() # 함수 호출
결과:
Hello!
㉯ 여러 번 호출
같은 함수를 여러 번 호출할 수 있습니다.
예제: 반복적인 인사
def say_hi():
print("Hi there!")
# 여러 번 호출
say_hi()
say_hi()
결과:
Hi there!
Hi there!
4. 매개변수와 호출 방식
㉮ 위치 인수(Positional Arguments)
매개변수의 순서에 따라 값을 전달합니다.
예제
def greet_user(first_name, last_name):
print(f"안녕하세요, {first_name} {last_name}님!")
greet_user("홍", "길동")
결과:
안녕하세요, 홍 길동님!
㉯ 키워드 인수(Keyword Arguments)
매개변수 이름을 지정하여 값을 전달합니다.
예제
greet_user(last_name="길동", first_name="홍")
결과:
안녕하세요, 홍 길동님!
㉰ 기본값 매개변수(Default Parameters)
매개변수에 기본값을 설정하여, 인수가 전달되지 않을 경우 기본값을 사용합니다.
예제
def greet_user(name="손님"):
print(f"안녕하세요, {name}님!")
greet_user() # 기본값 사용
greet_user("홍길동") # 인수 전달
결과:
안녕하세요, 손님님!
안녕하세요, 홍길동님!
5. 가변 매개변수
㉮ 가변 위치 인수
매개변수 앞에 *를 붙여 여러 개의 값을 받을 수 있습니다.
예제
def add_all(*numbers):
total = sum(numbers)
print(f"합계: {total}")
add_all(1, 2, 3, 4, 5)
결과:
합계: 15
㉯ 가변 키워드 인수
매개변수 앞에 **를 붙여 여러 개의 키워드 인수를 받을 수 있습니다.
예제
def user_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
user_info(name="홍길동", age=30, city="서울")
결과:
name: 홍길동
age: 30
city: 서울
6. 함수 활용 예제
㉮ 단순 계산기
def calculator(a, b, operation):
if operation == "add":
return a + b
elif operation == "subtract":
return a - b
elif operation == "multiply":
return a * b
elif operation == "divide":
return a / b
else:
return "잘못된 연산입니다."
result = calculator(10, 5, "add")
print(f"결과: {result}")
결과:
결과: 15
㉯ 학생 점수 평균 계산
def calculate_average(*scores):
return sum(scores) / len(scores)
average = calculate_average(85, 90, 78, 92)
print(f"평균 점수: {average:.2f}")
결과:
평균 점수: 86.25
7. 함수 정의 시 주의사항
㉮ 반환값 필요 여부:
• 반환값이 필요하지 않은 경우 return 문을 생략할 수 있습니다.
㉯ 매개변수 순서:
• 위치 인수와 키워드 인수의 순서를 혼동하지 않아야 합니다.
㉰ 가독성 유지:
• 함수 이름은 기능을 명확히 표현해야 합니다.
㉱ 중복 코드 제거:
• 중복되는 코드를 함수로 추출하여 유지보수성을 높입니다.
8. 요약
Python의 함수는 코드 재사용성을 높이고 프로그램을 구조적으로 작성하는 데 필수적인 도구입니다.
함수를 올바르게 정의하고 호출하는 방법을 익히면 효율적인 프로그래밍이 가능합니다.
핵심 정리
㉮ 함수 정의:
• def 키워드를 사용하여 함수 정의.
㉯ 매개변수:
• 위치 인수, 키워드 인수, 기본값 매개변수.
㉰ 가변 인수:
• args와 kwargs로 유연한 함수 작성 가능.
㉱ 함수 호출:
• 함수 이름 뒤에 괄호를 사용하며, 필요한 경우 매개변수 전달.
'코딩교육 > Python 초등교육에서 전문가까지' 카테고리의 다른 글
1단계 : 8. 함수와 모듈 (feat. 기본 제공 모듈 math, random , datetime 등 활용하기) (0) | 2025.02.01 |
---|---|
1단계 : 8. 함수와 모듈 (feat. 매개변수와 반환값 이해) (1) | 2025.01.31 |
1단계 : 7. 조건문과 반복문 (feat. 조건문과 반복문 활용 예제) (1) | 2025.01.29 |
1단계 : 7. 조건문과 반복문 (feat. 중첩 조건문과 반복문) (0) | 2025.01.28 |
1단계 : 7. 조건문과 반복문 (feat. 반복문 : for 와 while 사용법) (0) | 2025.01.27 |