반응형
5.1 함수 정의 및 호출
함수는 def
키워드를 사용하여 정의합니다.
함수 정의
def greet(name):
return f"Hello, {name}!"
함수 호출
print(greet("Alice"))
5.2 매개변수와 인자
함수는 매개변수를 통해 데이터를 전달받을 수 있으며, 호출 시 인자를 통해 값을 전달합니다.
위치 인자: 순서대로 값을 전달합니다.
def add(a, b):
return a + b
print(add(2, 3)) # 5
키워드 인자: 이름을 지정하여 값을 전달합니다.
def add(a, b):
return a + b
print(add(a=2, b=3)) # 5
print(add(b=3, a=2)) # 5
기본값 인자: 기본값을 지정할 수 있습니다.
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Alice", "Hi")) # Hi, Alice!
가변 인자: 가변 개수의 인자를 받을 수 있습니다.
- 가변 위치 인자 (*args
)
def add(*args):
return sum(args)
print(add(1, 2, 3)) # 6
print(add(1, 2, 3, 4, 5)) # 15
- 가변 키워드 인자 (**kwargs
)
def greet(**kwargs):
return f"{kwargs.get('greeting', 'Hello')}, {kwargs.get('name', 'Guest')}!"
print(greet(name="Alice", greeting="Hi")) # Hi, Alice!
print(greet(name="Alice")) # Hello, Alice!
5.3 반환값
함수는 return
키워드를 사용하여 값을 반환합니다.
def multiply(a, b):
return a * b
result = multiply(3, 4)
print(result) # 12
5.4 재귀 함수
재귀 함수는 자기 자신을 호출하는 함수입니다. 보통 재귀는 종료 조건이 필요합니다.
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # 120
5.5 lambda 함수
lambda 함수는 익명 함수로, lambda
키워드를 사용하여 간단한 함수를 정의할 수 있습니다.
# 일반 함수
def add(a, b):
return a + b
# lambda 함수
add = lambda a, b: a + b
print(add(2, 3)) # 5
5.6 함수 어노테이션
함수 어노테이션은 함수 매개변수와 반환값의 타입 정보를 제공하는 기능입니다. 어노테이션은 실제 동작에는 영향을 미치지 않으며, 코드의 가독성과 유지보수성을 높이는 데 사용됩니다.
def add(a: int, b: int) -> int:
return a + b
print(add(2, 3)) # 5
예제 함수들
최대값 찾기
def find_max(numbers):
max_num = numbers[0]
for num in numbers:
if num > max_num:
max_num = num
return max_num
print(find_max([1, 2, 3, 4, 5])) # 5
리스트 평탄화 (중첩 리스트를 하나의 리스트로 변환)
def flatten(nested_list):
result = []
for element in nested_list:
if isinstance(element, list):
result.extend(flatten(element))
else:
result.append(element)
return result
print(flatten([1, [2, [3, 4], 5], 6])) # [1, 2, 3, 4, 5, 6]
반응형
'Python 문법 > Python 기본 문법(3.10 기준)' 카테고리의 다른 글
[python3.10 기본] 7. 문자열 조작 (1) | 2024.07.01 |
---|---|
[python3.10 기본] 6. 데이터 구조 (1) | 2024.07.01 |
[python310 기본] 4. 제어문 (0) | 2024.07.01 |
[python3.10 기본] 3. 연산자와 표현식 (0) | 2024.07.01 |
[python3.10 기본] 2. 기본 문법 (1) | 2024.07.01 |