파이썬 - 함수 사용법

hyun-jin·2025년 3월 6일

데이터 분석

목록 보기
14/100
post-thumbnail

데이터 분석 13일차 (파이썬 9일) 파이썬 종합반 4주차

💡기본 함수

📌 1. 함수(Function)란?

- 함수는 특정 기능을 수행하는 코드로, 필요할 때 여러 번 호출할 수 있는 구조!

✔ 코드 재사용 가능하게 함
✔ 코드 논리적으로 나누어 가독성을 높임
✔ 입력(매개변수)을 받아 결과(출력)를 반환할 수 있음

📌 2. 함수의 기본 구조

- 함수를 정의할 때는 def 키워드를 사용!

def 함수이름(매개변수):
    실행할 코드
    return 반환값

📝 함수의 기본 요소 정리

요소설명
def함수를 정의할 때 사용
함수이름함수의 이름 (기능을 설명하는 이름이 좋음)
매개변수 (Parameter)함수가 받을 입력값 (선택사항)
return함수의 결과를 반환 (없어도 됨)


💡함수 심화

📌 1. 전역변수와 지역변수의 차이

구분설명예제
전역변수함수 바깥에서 선언되며, 프로그램 전체에서 접근 가능x = 10 (함수 외부)
지역변수함수 내부에서 선언되며, 해당 함수 안에서만 사용 가능def func(): y = 5
x = 10  # 전역변수

def my_func():
    y = 5  # 지역변수
    print("지역 변수 y:", y)

my_func()
print("전역 변수 x:", x)
# print(y)  # ❌ 오류 발생 (y는 함수 내부에서만 사용 가능)

📌 2) 인수(Argument)와 매개변수(Parameter)의 차이

용어설명예제
매개변수 (Parameter)함수 정의 시 입력값을 받기 위한 변수def greet(name):
인수 (Argument)함수 호출 시 실제로 전달하는 값greet("Alice")
def greet(name):  # name → 매개변수 (Parameter)
    print(f"안녕하세요, {name}님!")

greet("Alice")  # "Alice" → 인수 (Argument)

📌 3) 위치 인수 (Positional Arguments)

  • 순서대로 전달되는 인수
  • 함수의 매개변수 순서에 따라 값이 전달됨
def add(a, b):
    return a + b

print(add(3, 5))  # ✅ a=3, b=5로 전달
print(add(5, 3))  # ✅ a=5, b=3 → 결과가 달라짐!

📌 4) 키워드 인수 (Keyword Arguments)

  • 매개변수 이름을 직접 지정하여 전달
  • 순서와 관계없이 값을 전달 가능
def introduce(name, age):
    print(f"이름: {name}, 나이: {age}")

introduce(name="Alice", age=25)  # ✅ 순서 상관없음
introduce(age=30, name="Bob")  # ✅ 순서 바뀌어도 동작

📌 5) 기본값 (Default Values) 설정하기

  • 매개변수에 기본값을 설정하면, 인수를 생략해도 해당 값이 자동으로 사용됨
def greet(name="손님"):
    print(f"안녕하세요, {name}님!")

greet()  # 기본값 '손님' 사용
greet("Alice")  # Alice로 변경됨

📌 6) 키워드 인수와 기본값을 함께 사용하기

  • 기본값이 있는 매개변수와 함께 키워드 인수를 사용할 수 있음
def greet(name="Guest", age=25):
    print("이름:", name)
    print("나이:", age)

# 키워드 인수를 사용하여 함수 호출
greet(name="Alice", age=30)

# 일부 매개변수에만 키워드 인수 사용하여 호출
greet(name="Bob")

📌 7) 가변 인수 (Variable-length Arguments) 활용하기

  • 여러 개의 인수를 받을 때 *args, **kwargs 사용

✔️ *args → 여러 개의 위치 인수 받기

def sum_values(*args):
    total = 0
    for num in args:
        total += num
    return total

result = sum_values(1, 2, 3, 4, 5)
print("합계:", result)  # 출력: 합계: 15

✔️ **kwargs → 여러 개의 키워드 인수 받기

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

print_info(name="Alice", age=30, country="USA")

✔️ 추가 예제

# *args 사용 예제 (여러 개의 위치 인수)
def add(*numbers):
    return sum(numbers)

print(add(1, 2, 3, 4, 5))  # ✅ 여러 개의 숫자 전달 가능

# **kwargs 사용 예제 (여러 개의 키워드 인수)
def user_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

user_info(name="Alice", age=25, city="Seoul")  # ✅ 키워드 인수 여러 개 전달

🔥 최종 정리

개념설명예제
전역변수 & 지역변수함수 외부/내부에서 사용되는 변수x = 10 (전역) / y = 5 (지역)
매개변수 & 인수함수 정의 vs 호출 시 전달값def greet(name): / greet("Alice")
위치 인수순서대로 전달되는 인수add(3, 5)
키워드 인수매개변수 이름을 직접 지정introduce(name="Alice", age=25)
기본값매개변수에 기본값 설정def greet(name="손님"):
키워드 인수 + 기본값기본값과 함께 키워드 인수 사용order("커피", size="Large")
가변 인수*args, **kwargs를 이용해 여러 개 전달add(1,2,3,4), user_info(name="Alice", age=25)

💡SQL 코드카타 풀면서 알게 된것!

  • null as 컬럼명
    - 테이블 간 UNION(또는 UNION ALL)을 할 때 컬럼 개수를 맞추는 데 사용함!
    - 결과 테이블에 특정 컬럼을 추가하면서 값이 NULL이 되도록 지정할 때 사용!

0개의 댓글