🗄️ 데이터센터
home
주식거래 데이터
home

함수 요약

1. 기본 함수

가장 기본적인 함수로, 단순히 출력만 수행합니다. say_hello 함수를 실행하면 "Hello World!"가 출력됩니다.
def say_hello(): print("Hello World!") say_hello()
Python
복사

2. 매개변수 함수

매개변수는 함수에 전달되는 값으로, 함수의 동작을 유연하게 만들어주는 중요한 요소입니다. 함수를 정의할 때 매개변수를 지정하면, 함수를 호출할 때 다양한 값을 전달하여 다른 결과를 얻을 수 있습니다. 이를 통해 코드의 재사용성을 높이고 더 유연한 프로그래밍이 가능해집니다.
def greet_user(name): print(f"안녕하세요, {name}님!") # 함수 호출 예시 greet_user("주현") # 출력: 안녕하세요, 주현님! greet_user("영희") # 출력: 안녕하세요, 영희님!
Python
복사

3. 리턴값이 있는 함수

함수의 리턴(return)은 함수가 작업을 수행한 후 결과값을 반환하는 기능입니다.
def add_numbers(x, y): """두 수를 더해서 결과를 반환하는 함수""" result = x + y return result # 계산된 결과를 반환 # 함수 사용 예시 sum_result = add_numbers(5, 3) # 반환된 값을 변수에 저장 print(sum_result) # 8 출력
Python
복사
리턴의 주요 특징
함수의 실행을 즉시 종료하고 값을 반환합니다
여러 개의 값을 동시에 반환할 수 있습니다 (튜플 형태로 반환)
return 문이 없는 함수는 기본적으로 None을 반환합니다
# 여러 값을 반환하는 함수 def get_user_info(): name = "김철수" age = 25 return name, age # 여러 값 반환 # 반환값 받기 user_name, user_age = get_user_info()
Python
복사

4. 기본값 매개변수 함수

기본값 매개변수 함수는 매개변수에 기본값을 설정하여 함수를 더 유연하게 사용할 수 있게 해주는 기능입니다.
1.
기본값이 설정된 매개변수는 함수 호출 시 값을 전달하지 않아도 됩니다.
2.
코드 예시
def greet_with_title(name, title="님"): print(f"안녕하세요, {name}{title}") greet_with_title("영희") # 기본값 "님" 사용 greet_with_title("영희", "박사님") # "박사님"으로 기본값 대체
Python
복사
title 매개변수의 기본값은 "님"입니다
greet_with_title("영희")처럼 title 인자를 생략하면 기본값 "님"이 사용됩니다
greet_with_title("영희", "박사님")처럼 새로운 값을 전달하면 기본값 대신 전달된 값이 사용됩니다
이러한 기능을 통해 함수를 더 유연하게 사용할 수 있으며, 선택적 매개변수를 효과적으로 처리할 수 있습니다.

5. 문서화된 함수

Docstrings를 사용하여 함수의 기능을 문서화합니다.
def multiply(a, b): """ 두 숫자를 곱하는 함수입니다. Args: a (int): 첫 번째 숫자 b (int): 두 번째 숫자 Returns: int: 두 숫자의 곱 """ return a * b
Python
복사
Docstrings는 help() 함수나 doc 속성을 사용하여 출력할 수 있습니다.
help(multiply) # help() 함수 사용 print(multiply.__doc__) # __doc__ 속성 사용
Python
복사

6. 변수 범위 함수

지역변수는 함수 내에서만 사용 가능하고, 전역변수는 프로그램 전체에서 사용 가능한 변수입니다. 아래 코드에서 global_var는 전역변수이고 local_var는 지역변수입니다.
global_var = 10 #전역변수 def scope_test(): local_var = 20 #지역변수 print(f"전역변수: {global_var}") print(f"지역변수: {local_var}")
Python
복사

7. 재귀 함수

재귀 함수는 자기 자신을 반복적으로 호출하여 문제를 해결하는 함수입니다. 위의 예시에서는 팩토리얼(n!)을 계산하기 위해 n * (n-1)!의 패턴으로 자신을 호출합니다.
def factorial(n): if n <= 1: return 1 return n * factorial(n-1) print(factorial(5)) # 120
Python
복사

8. 람다 함수

간단한 익명 함수를 생성합니다.
람다(Lambda) 함수는 간단한 익명 함수를 생성하는 방식입니다. 주요 특징을 설명하면:
한 줄로 간단하게 함수를 정의할 수 있습니다
주로 일시적으로 사용할 간단한 함수가 필요할 때 활용됩니다
square = lambda x: x**2 numbers = [1, 2, 3, 4, 5] squared = list(map(square, numbers))
Python
복사
위 코드에서 'lambda x: x**2'는 다음과 같은 일반 함수와 동일한 기능을 합니다:
def square(x): return x**2
Python
복사
람다 함수는 특히 map(), filter(), reduce() 같은 함수형 프로그래밍에서 자주 사용되며, 함수를 매개변수로 전달해야 할 때 유용합니다.

9. 데코레이터 함수

함수의 기능을 수정하거나 확장하는 데코레이터입니다.
데코레이터는 함수를 감싸서 기능을 확장하거나 수정할 수 있게 해주는 파이썬의 강력한 기능입니다. 주요 특징은 다음과 같습니다:
기존 함수의 코드를 수정하지 않고도 새로운 기능을 추가할 수 있습니다
함수의 실행 시간 측정, 로깅, 권한 검사 등 다양한 용도로 활용됩니다
여러 데코레이터를 중첩해서 사용할 수 있습니다
데코레이터는 '@' 기호를 사용하여 적용하며, 다음과 같은 구조로도 표현할 수 있습니다
def timer_decorator(func): def wrapper(): import time start = time.time() func() end = time.time() print(f"실행 시간: {end - start}초") return wrapper @timer_decorator def slow_function(): import time time.sleep(1)
Python
복사
데코레이터는 클래스 메소드나 속성에도 적용할 수 있으며, 매개변수를 받는 데코레이터를 만들 수도 있습니다.

10. 함수를 인자로 받는 함수

함수를 다른 함수의 인자로 전달하여 더 유연한 프로그래밍이 가능합니다. 이는 고차 함수(Higher-order function)의 한 예시입니다.
def apply(func, x): """ 함수와 값을 받아서 함수를 실행하는 고차 함수 Args: func: 실행할 함수 x: 함수에 전달할 인자 """ return func(x) # 예시 함수들 def double(x): return x * 2 def square(x): return x ** 2 # apply 함수 사용 print(apply(double, 5)) # 출력: 10 print(apply(square, 5)) # 출력: 25
Python
복사
이러한 방식은 특히 함수형 프로그래밍에서 자주 사용되며, 코드의 재사용성과 유연성을 높여줍니다.

11. kwargs

**kwargs(키워드 인자)는 함수에 이름이 지정된 인자를 딕셔너리 형태로 전달할 수 있게 해주는 특별한 매개변수입니다. 이를 통해 유연하고 확장 가능한 함수를 작성할 수 있습니다.
함수 정의시 매개변수 앞에 ** 를 붙여 사용합니다
호출할 때는 키워드=값 형태로 인자를 전달합니다
전달된 모든 키워드 인자는 딕셔너리로 변환되어 함수 내부에서 사용됩니다
인자의 개수에 제한이 없어 유연한 함수 설계가 가능합니다
def print_info(**kwargs): """ 키워드 인자를 받아서 정보를 출력하는 함수 Args: **kwargs: 키워드 인자들 (이름=값 형태) """ for key, value in kwargs.items(): print(f"{key}: {value}") # 함수 사용 예시 print_info(name="으뜸이네", age=25, city="서울") print_info(title="개발자", company="테크코리아")
Python
복사

연습만이 성장의 지름길!

코딩직접 해봐야 합니다! colab으로 간단히 연습해 보세요. 프로젝트 전체가 아닌, 작은 코드 조각들을 하나씩 연습하는 것입니다. 이렇게 연습한 조각들이 모여 성공적인 프로젝트가 완성됩니다.