-
Python 튜토리얼 06 함수Study/Python 튜토리얼 2025. 9. 26. 10:10

목차
- 들어가며: 파이썬 코드의 재사용, 함수(Function) 정복하기
- 함수의 기본: 개념과 구조
- 2-1. 기본적인 함수 구조 (정의와 호출)
- 2-2. 매개변수(Parameter)와 인수(Argument)
- 2-3. 기본값(Default) 매개변수
- 함수의 핵심: 반환(return)과 활용
- 3-1. return으로 결과값 돌려주기
- 3-2. 여러 값 반환하기
- 3-3. print와 return의 차이점
- 심화 개념: 변수의 범위(Scope)와 동작 원리
- 4-1. 지역 변수(Local Variable)와 전역 변수(Global Variable)
- 4-2. 함수 호출과 스택(Stack)의 이해
- 마치며: 함수로 더 깔끔하고 효율적인 코드 만들기
들어가며: 파이썬 코드의 재사용, 함수(Function) 정복하기
안녕하세요! 이번 시간에는 파이썬 프로그래밍의 핵심 구성 요소인 함수(Function)에 대해 알아보겠습니다.
함수는 특정 작업을 수행하는 코드 뭉치를 이름으로 묶어, 필요할 때마다 재사용할 수 있게 해주는 강력한 도구입니다. 함수를 사용하면 코드의 중복을 피하고, 프로그램을 논리적인 단위로 나눌 수 있어 가독성과 유지보수성이 크게 향상됩니다.
이 글을 통해 함수의 기본 정의 방법부터 매개변수, 반환 값, 그리고 변수의 유효 범위(Scope)와 같은 심화 개념까지 완벽하게 익혀보세요.
2. 함수의 기본: 개념과 구조
함수는 def 키워드로 정의하고, 함수 이름을 호출하여 실행합니다. 가장 기본적인 구조부터 차근차근 살펴보겠습니다.
2-1. 기본적인 함수 구조 (정의와 호출)
함수는 def 함수이름(): 형태로 정의하며, 함수가 수행할 코드는 들여쓰기를 통해 작성합니다. 정의된 함수는 함수이름()으로 호출하여 실행할 수 있습니다.
# 예제 1: "안녕"을 출력하는 가장 간단한 함수 def print_hello(): print("안녕") # 함수 호출 print_hello() # 안녕 # 예제 2: 함수는 여러 번 재사용할 수 있습니다. print_hello() print_hello() # 안녕 # 안녕2-2. 매개변수(Parameter)와 인수(Argument)
함수는 외부로부터 값을 전달받아 처리할 수 있습니다.
함수를 정의할 때 받는 변수를 매개변수(Parameter), 함수를 호출할 때 전달하는 실제 값을 인수(Argument)라고 합니다.
# 예제 1: 하나의 매개변수를 사용하는 함수 def print_with_love(string): print(string + "♡") print_with_love("파이썬") # 파이썬♡ # 예제 2: 두 개의 매개변수를 사용하는 함수 def print_sum(a, b): print(a + b) print_sum(3, 4) # 7 # 예제 3: 매개변수를 활용한 짝수/홀수 판별 def print_even_odd(num): if num % 2 == 0: print("짝수") else: print("홀수") print_even_odd(5) # 홀수2-3. 기본값(Default) 매개변수
함수를 호출할 때 인수를 전달하지 않으면, 매개변수는 미리 지정된 기본값을 사용하게 할 수 있습니다.
# 예제: count 매개변수에 기본값 1을 지정 def print_hello_default(name, count=1): for i in range(count): print(name, "안녕") # count 인수를 생략하면 기본값 1이 사용됨 print_hello_default("홍길동") # 홍길동 안녕 # count 인수를 전달하면 해당 값이 사용됨 print_hello_default("김철수", 3) # 김철수 안녕 # 김철수 안녕 # 김철수 안녕
3. 함수의 핵심: 반환(return)과 활용
함수가 특정 작업을 수행한 후, 그 결과값을 호출한 곳으로 돌려줄 때 return 키워드를 사용합니다.
3-1. return으로 결과값 돌려주기
return을 사용하면 함수의 실행 결과를 변수에 저장하거나 다른 연산에 바로 활용할 수 있습니다.
# 예제: 두 숫자의 평균을 계산하여 반환하는 함수 def average(a, b): return (a + b) / 2 # 함수의 반환 값을 result 변수에 저장 result = average(10, 20) print(result) # 15.03-2. 여러 값 반환하기
파이썬 함수는 튜플(tuple)을 이용하여 여러 개의 값을 동시에 반환할 수 있습니다.
# 예제: 리스트에서 최소값과 최대값을 함께 반환 def get_min_max(data_list): min_val = min(data_list) max_val = max(data_list) return (min_val, max_val) min_result, max_result = get_min_max([3, 5, 2, 8, 1]) print("최소값:", min_result) print("최대값:", max_result) # 최소값: 1 # 최대값: 83-3. print와 return의 차이점
print는 단순히 화면에 값을 '보여주는' 기능이며, return은 값을 '반환'하여 프로그램의 흐름 속에서 재사용할 수 있게 합니다.
def print_function(a, b): print(a + b) def return_function(a, b): return a + b # print 함수는 반환 값이 없으므로 result_a는 None이 됨 result_a = print_function(5, 10) print("print 함수의 결과:", result_a) # 15 # print 함수의 결과: None # return 함수는 값을 반환하므로 result_b에 저장하여 활용 가능 result_b = return_function(5, 10) print("return 함수의 결과:", result_b) # return 함수의 결과: 15
4. 심화 개념: 변수의 범위(Scope)와 동작 원리
변수가 코드의 어느 부분에서 유효한지를 '변수의 범위(Scope)'라고 합니다. 함수와 변수의 범위를 이해하는 것은 매우 중요합니다.
4-1. 지역 변수(Local Variable)와 전역 변수(Global Variable)
- 지역 변수: 함수 내부에서 선언된 변수로, 오직 그 함수 안에서만 유효합니다.
- 전역 변수: 함수 바깥에서 선언된 변수로, 코드 전체에서 접근할 수 있습니다.
a = 1 # 전역 변수 def sample_function(): a = 2 # 'a'라는 새로운 지역 변수가 생성됨 print("함수 안:", a) # 예제 1: 함수 안에서 변수를 수정해도 전역 변수는 바뀌지 않음 sample_function() print("함수 밖:", a) # 함수 안: 2 # 함수 밖: 1 # 예제 2: 함수 안에서 전역 변수를 읽는 것은 가능 b = 10 # 전역 변수 def print_b(): print(b) print_b() # 104-2. 함수 호출과 스택(Stack)의 이해
함수가 다른 함수를 호출하는 과정은 '스택(Stack)'이라는 자료 구조처럼 동작합니다. 나중에 호출된 함수가 먼저 실행을 마치고 자신의 결과를 이전 함수에 반환하는 '후입선출(LIFO)' 구조를 가집니다.
# 예제: 함수가 연쇄적으로 호출되는 과정 def 함수0(num): return num * 2 def 함수1(num): return 함수0(num + 2) def 함수2(num): num = num + 10 return 함수1(num) result = 함수2(0) print(result) # 24 # 실행 순서 # 1. 함수2(0) 호출 -> num은 10이 되고, 함수1(10)을 호출 # 2. 함수1(10) 호출 -> num+2는 12가 되고, 함수0(12)을 호출 # 3. 함수0(12) 호출 -> 12 * 2의 결과인 24를 반환 # 4. 반환된 24는 함수1로, 다시 함수2로 전달되어 최종 결과가 됨
마치며: 함수로 더 깔끔하고 효율적인 코드 만들기
함수는 파이썬 프로그래밍의 가장 기본적인 동시에 가장 중요한 구성 요소입니다.
반복되는 코드를 함수로 묶으면 프로그램을 훨씬 구조적이고 이해하기 쉽게 만들 수 있습니다.
오늘 배운 함수의 정의, 매개변수 활용, return의 의미, 변수의 범위 등을 잘 숙지하고 직접 다양한 함수를 만들어보는 연습을 해보세요.
함수를 자유자재로 다루는 능력은 더 복잡하고 멋진 프로그램을 만드는 든든한 초석이 될 것입니다!
코드 출처: https://wikidocs.net/23905
09. 파이썬 함수
조금 더 자세한 설명을 원한다면 클래스101의 "Level2 중급 파이썬"을 추천합니다. 고급 문법을 아는 것이 고급 실력을 의미하지 않습니다. "Level1 기초 파이썬"부터 …
wikidocs.net
'Study > Python 튜토리얼' 카테고리의 다른 글
Python 튜토리얼 07 모듈과 클래스 (0) 2025.09.27 Python 튜토리얼 05 반복문 (0) 2025.09.25 Python 튜토리얼 04 분기문 (0) 2025.09.24 Python 튜토리얼 03 튜플과 딕셔너리 (0) 2025.09.23 Python 튜토리얼 02 문자열과 리스트 (0) 2025.09.22