딥러닝/프로그래밍 기초

[프로그래밍 기초]Part 5. 파이썬 기초 5대 영양소 함수 (Functions)

알케이88 2025. 7. 12. 00:03

1. 함수란?

여러 줄의 코드를 하나로 묶어 이름을 붙임
재사용성, 가독성, 유지보수에 필수인 핵심 문법

 

2. 함수 정의 및 호출

def greet(name):
    return f"안녕, {name}!"

print(greet("철수"))  # 안녕, 철수!
  • def(define) 키워드로 함수를 정의, ()로 호출
  • return 은 결과값을 돌려줌

 

3. 매개 변수(Parameter) 와 인수(Argument)

def add(a, b): 		# a, b 는 매개변수
	return a + b	# 돌려주는 값은 8
   
print(add(3m 5)		# 3, 5 는 인수
  • 매개변수 : 함수 정의 시 이름 붙인 변수
  • 인수 함수 호출시 넘겨주는 실제 값

 

4. 반환값 (Return)

def square(x):
	return x * x
    
print(square(4))	# 16
  • 함수의 결과를 반환하고 싶을때 return 사용
  • 반환하지 않으면 기본값은 None

 

5. 기본값 인자 (Variable-length arguments)

한글 명칭 영어 표현 설명
가변 인자 Variable-length arguments 인자의 개수가 유동적인 함수
위치 가변 인자 Positional variable-length arguments (*args) 순서대로 여러 인자
키워드 가변 인자 Keyword variable-length arguments (**kwargs) 이름 붙여 여러 인자
# -------- 위치 가변 인자 (*args) --------
# 위치 인자를 몇 개든 받을 수 있고, 튜플 형태로 저장됨

def print_numbers(*args):
    print("받은 값들:", args)  # args는 튜플
    for i in args:
        print(i)

print_numbers(10, 20, 30)
# 출력:
# 받은 값들: (10, 20, 30)
# 10
# 20
# 30


# -------- 키워드 가변 인자 (**kwargs) --------
# 키워드 인자를 몇 개든 받을 수 있고, 딕셔너리 형태로 저장됨

def print_info(**kwargs):
    print("받은 키워드들:", kwargs)  # kwargs는 딕셔너리
    for key, value in kwargs.items():
        print(f"{key} : {value}")

print_info(name="Alice", age=25, job="developer")
# 출력:
# 받은 키워드들: {'name': 'Alice', 'age': 25, 'job': 'developer'}
# name : Alice
# age : 25
# job : developer


# -------- *args와 **kwargs 함께 사용 --------
# 위치 인자와 키워드 인자를 동시에 받을 수 있음

def show_all(*args, **kwargs):
    print("args:", args)       # 위치 인자 → 튜플
    print("kwargs:", kwargs)   # 키워드 인자 → 딕셔너리

show_all(1, 2, 3, name="Bob", age=30)
# 출력:
# args: (1, 2, 3)
# kwargs: {'name': 'Bob', 'age': 30}

 

형태 파라미터 형태 내부 자료형 설명
args 위치 인자 tuple 인자의 개수가 유동적일 때 사용
kwargs 키워드 인자 dict 키=값 형태의 인자를 유동적으로 받을 때 사용
  • args
    • 튜플 형태로 여러 값을 전달받음
    • 인자의 개수가 유동적일 때 사용
  • kwargs
    • 딕셔너리 형태로 여러 값을 전달받음
    • 키와 값을 지정하여 넘기는 방식
  • 이렇게 기억해보자
    • *args → Args = Any number of positional arguments
    • **kwargs → Kwargs = Keyword word arguments

한 문장 정리:

"가변 인자는 함수가 받는 인자의 개수나 이름이 유동적일 때 사용하는 문법이며,
그 안에는 **위치 가변 인자(*args)**와 **키워드 가변 인자(**kwargs)**가 있다."

 

🎁 보너스: 람다 함수 맛보기 (추후 설명 예정)

lambda는 한 줄로 정의 하는 간단한 함수
이름 없는 익명 함수로 사용

 

# 문법
# 변수(익명 함수) = lambda 매개 변수1, 매개 변수2.... : 반환값

square = lambda x: x * x
print(square(4))  # 16

add = lambda a, b: a + b
print(add(2, 3))  # 5

핵심 포인트

  • lambda x: x * x는 함수지만 이름이 없음 → 익명 함수
  • square = lambda x: x * x
    👉 lambda 함수를 변수 square에 저장한 것
  • 이제 square는 함수처럼 동작하는 변수가 됨

 

 

다른 기초를 알고 싶다면?  여기로