# Python 공부 시리즈 8편: 함수 (Function)

Han·2025년 7월 22일

Python 입문 시리즈

목록 보기
9/14

8.1 함수 정의 & 호출, return

함수 정의 (def)

python

def greet():
	print("Hello, Python!")
  • def 키워드로 함수를 정의합니다.
  • greet는 함수 이름이며, 괄호 안은 매개변수(parameter) 자리입니다.

함수 호출

python

greet()

return 문

python

def add(a, b):
	return a + b
    
result = add(3, 5)
print(result)
  • return을 사용해 값을 반환할 수 있으며, 반환값은 변수에 저장하거나 다른 함수에서 활용됩니다.

8.2 매개변수 & 반환값 종류

Python 함수는 다양한 방식으로 인자(argument)를 받을 수 있습니다.


위치인자(Positional Argument)

  • 인자의 순서가 중요합니다.
python

def info(name, age):
	print(f"{name}은 {age}살입니다.")

info("Alice", 30)

기본값 인자(Default Argument)

  • 인자에 기본값을 미리 지정할 수 있습니다.
python

def greet(name="python"):
	print(f"Hello, {name}!")
    
greet()			#Hello, Python!
greet("Alice")	#Hello, Alice!

키워드 인자(Keyword Argument)

  • 인자 이름을 명시하여 순서를 무시하고 값을 전달할 수 있습니다.
python

def student(name, grade):
	print(f"{name}의 성적은 {grade}입니다.")
    
student(grade="A+", name="Bob")

가변 인자(*args, **kwargs)

*args(튜플 형태로 여러 인자 받기)

python

def total(*numbers):
	print(numbers)
    print(sum(numbers))
    
total(1,2,3,4)
  • 인자의 개수가 가변적일 때 사용(튜플로 전달됨)

**kwargs(딕셔너리 형태로 키워드 인자 받기)

python

def print_info(**kwargs):
	for key, value in kwargs.items():
    	print(f"{key} : {value}")

print_info(name="Alice", age=25)
  • 키워드 인자를 딕셔너리로 전달받을 수 있습니다.

8.3 익명 함수(lambda), 재귀(Recursion)

lambda함수 (익명 함수)

  • 이름 없이 사용하는 간단한 함수
  • lambda 인자: 표현식 형태
python

square = lambda X: X ** 2
print(square(4))	# 16
  • 보통 한 줄짜리 계산 함수에 사용됩니다.
  • map(), filter(), sorted()와 자주 함께 사용됩니다.
python

nums = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, nums))
print(squares)	#[1, 3, 9, 16]

재귀 함수(Recursion)

  • 함수 내에서 자기 자신을 호출하는 함수
python

def factorial(n):
	if n == 1:
    	return 1
    return n * factorial(n - 1)
    
print(factorial(5))
  • 종료 조건을 명확히 지정하지 않으면 무한 루프 발생에 주의해야 합니다.

9.4 스코프(Scope): Global, Local, Nonlocal

지역변수(Local Variable)

  • 함수 내부에서 정의된 변수는 그 함수 안에서만 유효
python

def example():
	x = 10
    print(x)
    
example()

전역변수(Global Variable)

  • 함수 밖에서 정의된 변수는 전체 코드에서 사용 가능
python

x = 100

def show():
	print(x)
    
show()

nonlocal 키워드(중첩 함수에서 바깥 함수의 지역 변수 수정)

python

def outer():
	x = "outer"
    
    def inner():
    	nonlocal x
        x = "inner"
  • nonlocal은 바깥쪽 지역 스코프의 변수에 접근할 때 사용됩니다.

요약정리
| 구분 | 설명 |
| ----------- | -------------------- |
| def | 함수 정의 키워드 |
| return | 함수의 결과값 반환 |
| *args | 가변 위치 인자 (튜플로 전달) |
| **kwargs | 가변 키워드 인자 (딕셔너리로 전달) |
| lambda | 익명 함수 |
| global | 전역 변수 수정 |
| nonlocal | 바깥 함수의 지역 변수 수정 |
| recursion | 함수가 자기 자신을 호출 |


마무리

이번 편에서는 Python의 함수 정의 및 호출, 인자 처리 방식, 익명 함수와 재귀, 그리고 스코프의 개념까지 함수에 대한 핵심적인 내용을 정리했습니다.

다음 편에서는 Python의 예외처리에 대해 공부해보겠습니다.

profile
개발자를 꿈꾸는 청년

0개의 댓글