Python 함수란 무엇인가
요약
Python 함수는 재사용 가능한 코드 블록으로, 반복을 줄이고 코드를 관리하기 쉽게 만듭니다. `def` 키워드로 정의하며, 매개변수와 인자 개념을 이해하는 것이 중요합니다. 위치 기반, 키워드 기반, 기본값 등 다양한 방식으로 데이터를 처리할 수 있습니다.
핵심 포인트
- 함수는 재사용 가능한 코드 블록으로, 프로그램의 모듈성을 높입니다.
- 매개변수(정의)와 인자(호출 시 값)를 구분해야 합니다.
- *args는 가변 위치 인자를 튜플로 받고, **kwargs는 가변 키워드 인자를 딕셔너리로 받습니다.
- return 문을 사용해 값을 반환하며, 여러 값도 튜플 형태로 반환 가능합니다.
Python 함수는 특정 작업을 수행하도록 설계된 재사용 가능한 코드 블록입니다. 함수를 사용하면 코드 반복을 방지하고, 복잡한 프로그램을 더 작고 관리하기 쉬운 조각들로 나누며, 명시적으로 호출될 때만 실행되도록 할 수 있습니다.
기본 구문 - 함수 정의 및 호출
- 함수는
def키워드를 사용하여 정의하며, 그 뒤에 사용자 지정 이름, 괄호(), 그리고 콜론:이 옵니다. 함수의 본문은 들여쓰기(indent) 되어야 합니다.
# 1. 함수 정의
def greet():
print("Hello! Welcome to Python.")
...
매개변수 (Parameter) vs 인자 (Argument)
- **매개변수(Parameters)**는 함수 정의에서 사용되는 이름으로, 해당 함수가 어떤 데이터를 예상하는지 설명합니다.
- **인자(Arguments)**는 함수 호출 시 실제로 전달되며 매개변수에 할당되는 값입니다.
def greet_user(username): # username은 매개변수입니다
print(f"Hello, {username}!")
...
핵심 인자 유형
위치 기반 (Positional)
- 값들은 작성된 순서에 따라 매개변수에 직접 매핑됩니다.
# 'name'이 첫 번째 매개변수이고, 'age'가 두 번째 매개변수입니다
def greet(name, age):
print(f"Hello {name}, you are {age} years old.")
...
키워드 기반 (Keyword)
- 키워드 인자(또는 이름 지정 인자)는
매개변수_이름 = 값구문을 사용하여 매개변수 이름과 값을 명시적으로 지정하여 함수에 전달되는 인자입니다.
def greet_user(name, greeting, punctuation="!"):
return f"{greeting}, {name}{punctuation}"
...
기본값 인자 (Default argument)
- 기본값 인자는 함수 매개변수 정의 시 할당되는 대체 값입니다. 함수를 호출할 때 해당 인자를 생략하면 Python이 자동으로 이 미리 정의된 기본값을 사용하며, 값을 제공하면 기본값을 덮어씁니다.
def greet(name="Guest"):
print(f"Hello, {name}!")
...
Args (*args)
*args는 함수 정의에서 사용되는 특별한 구문으로, 함수가 가변 개수의 위치 기반 인자를 받을 수 있도록 허용합니다.
def multiply_all(*args):
result = 1
# args는 튜플로 취급됩니다: (2, 3, 4)
...
Kwargs (*kwargs)
- **kwargs는 keyword arguments의 약자입니다. 함수 정의에서 사용되는 특별한 구문으로, 함수가 임의의(변수) 개수의 이름이 지정된 인수를 받을 수 있도록 허용합니다.
- 값들은 딕셔너리 형태로 저장됩니다.
def display_info(**kwargs):
# kwargs는 함수 내부의 딕셔너리입니다
print(kwargs)
...
반환 값 (Return Values)
return문을 사용하여 함수를 종료하고 데이터를 프로그램으로 되돌릴 수 있습니다.return문이 정의되지 않으면, 함수는 자동으로None을 반환합니다.
def add_numbers(a, b):
return a + b
...
- 쉼표로 구분하여 여러 값을 반환할 수 있습니다. Python은 이를 자동으로 튜플(tuple)에 담아주며, 이 튜플을 별도의 변수로 언패킹(unpacking)할 수 있습니다.
def get_user_data():
name =
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기