실버를 위한 코딩/파이썬

파이썬의 함수

forSilver 2024. 12. 3. 03:43
반응형

파이썬의 함수

함수는 특정 작업을 수행하는 코드 블록으로, 코드를 재사용 가능하고 깔끔하게 작성할 수 있도록 도와줍니다. 파이썬에서 함수는 def 키워드를 사용하여 정의합니다.


1. 함수의 기본

함수는 정의(Definition)호출(Call)로 이루어집니다.

기본 구조

def 함수명(매개변수):
    실행할 코드

예제

# 함수 정의
def greet(name):
    print(f"Hello, {name}!")

# 함수 호출
greet("Alice")  # 출력: Hello, Alice!
greet("Bob")    # 출력: Hello, Bob!


2. 값을 반환하기

함수는 결과값을 return 키워드를 사용해 호출한 곳으로 반환할 수 있습니다.

기본 구조

def 함수명(매개변수):
    실행할 코드
    return 값

예제

# 두 수를 더하는 함수
def add(a, b):
    return a + b

# 함수 호출 및 반환값 사용
result = add(3, 5)
print(result)  # 출력: 8

여러 값 반환

함수는 여러 값을 튜플 형태로 반환할 수 있습니다.

def calculate(a, b):
    return a + b, a - b, a * b, a / b

add_res, sub_res, mul_res, div_res = calculate(10, 2)
print(add_res, sub_res, mul_res, div_res)
# 출력: 12 8 20 5.0


3. 유효 범위(Scope)

파이썬 변수는 변수의 유효 범위(Scope)에 따라 접근 가능 여부가 달라집니다.

지역 변수(Local Variable)

  • 함수 내부에서 선언된 변수는 지역 변수이며, 함수 외부에서는 접근할 수 없습니다.

전역 변수(Global Variable)

  • 함수 외부에서 선언된 변수는 전역 변수이며, 함수 내부에서도 접근 가능합니다.
    단, 함수 내부에서 전역 변수를 변경하려면 global 키워드를 사용해야 합니다.

예제

x = 10  # 전역 변수

def func():
    y = 5  # 지역 변수
    print(x)  # 전역 변수 접근 가능
    print(y)  # 지역 변수

func()
# 출력: 10, 5

print(x)  # 전역 변수는 접근 가능
# print(y)  # 에러 발생: 지역 변수는 함수 외부에서 접근 불가

global 키워드 사용

x = 10

def modify_global():
    global x
    x = 20  # 전역 변수 수정

modify_global()
print(x)  # 출력: 20


4. 더 알면 좋은 것

1) 기본 매개변수 값(Default Parameter)

  • 함수 호출 시 매개변수를 전달하지 않을 경우 기본값을 사용합니다. 
  • def greet(name="Guest"): print(f"Hello, {name}!")

greet() # 출력: Hello, Guest!
greet("Alice") # 출력: Hello, Alice!


#### **2) 키워드 인수(Keyword Argument)**
- 함수 호출 시 매개변수 이름을 명시하여 값을 전달할 수 있습니다.
```python
def introduce(name, age):
    print(f"My name is {name} and I am {age} years old.")

introduce(age=25, name="Alice")  # 순서를 바꿔도 정상적으로 동작

3) 가변 인수(args, *kwargs)

  • *args: 임의 개수의 위치 인수를 받을 수 있습니다.
  • `kwargs`**: 임의 개수의 키워드 인수를 받을 수 있습니다.
# *args 예제
def add_all(*args):
    return sum(args)

print(add_all(1, 2, 3, 4, 5))  # 출력: 15

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

print_info(name="Alice", age=25, city="New York")
# 출력:
# name: Alice
# age: 25
# city: New York

4) 람다 함수(Lambda Function)

  • 간단한 함수를 한 줄로 작성할 때 사용합니다.
    # 일반 함수
    def add(a, b):
      return a + b
    
    # 람다 함수
    add = lambda a, b: a + b
    
    print(add(3, 5))  # 출력: 8

람다 함수 사용

 

이렇게 함수를 활용하면 코드의 재사용성과 가독성을 높일 수 있습니다. 람다 함수는 이름 없이 lambda 키워드로 간단히 정의된 익명 함수로, 한 줄로 표현되는 간단한 연산에 사용됩니다.