본문 바로가기

언어/Python

함수 다루기

반응형

Python에서 함수는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성과 가독성을 높이는 데 중요한 역할을 합니다. 함수는 def 키워드를 사용하여 정의하며, 필요할 때 호출하여 사용할 수 있습니다. 함수에 대한 기본적인 개념과 사용법을 설명하겠습니다.

함수 정의하기

함수를 정의할 때는 def 키워드를 사용하고, 함수의 이름과 매개변수 목록을 괄호 안에 작성합니다. 함수의 본문은 콜론(:) 뒤에 들여쓰기하여 작성합니다.

def greet():
    print("Hello, world!")

함수 영역

파이썬은 블럭의 시작과 끝을 표시하는 문자가 없으므로 같은 간격으로 들여쓰기 된 문장들을 하나의 코드 블럭으로 간주한다.

탭과 빈칸을 모두 사용하는  편집 환경에서는 문제를 일으킬 수 있다.

빈칸만을 사용하는 것을 추천합니다.

def main():
        side1 = float(10)
    side2 = float(20)
    print(side1)
    
    
E:\Projects\GPJIGI\Language\Python>python3 test.py
  File "E:\Projects\GPJIGI\Language\Python\test.py", line 3
    side2 = float(20)
                     ^
IndentationError: unindent does not match any outer indentation level

함수 호출하기

정의한 함수를 호출하려면 함수 이름과 괄호를 사용합니다.

greet()  # 출력: Hello, world!

매개변수가 있는 함수

함수에 매개변수를 정의하여, 함수 호출 시 값을 전달할 수 있습니다.

def greet(name):
    print(f"Hello, {name}!")

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

반환 값이 있는 함수

함수는 return 문을 사용하여 값을 반환할 수 있습니다.

def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 출력: 8

기본 매개변수 값

함수의 매개변수에 기본 값을 설정할 수 있습니다. 이렇게 하면 인수를 생략할 때 기본 값이 사용됩니다.

def greet(name="World"):
    print(f"Hello, {name}!")

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

키워드 인수

함수를 호출할 때 매개변수의 이름을 지정하여 값을 전달할 수 있습니다. 이를 키워드 인수라고 합니다.

def describe_person(name, age):
    print(f"Name: {name}, Age: {age}")

describe_person(age=30, name="Alice")  # 출력: Name: Alice, Age: 30

가변 길이 인수

매개변수의 수가 가변적인 경우, ***를 사용하여 여러 인수를 받을 수 있습니다.

  • *args: 위치 인수를 튜플 형태로 받습니다.
  • **kwargs: 키워드 인수를 딕셔너리 형태로 받습니다.
def print_numbers(*args):
    for number in args:
        print(number)

print_numbers(1, 2, 3, 4)  # 출력: 1 2 3 4

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

print_info(name="Alice", age=30)  # 출력: name: Alice, age: 30

함수의 예외 처리

함수 내부에서 예외 처리를 할 수 있습니다.

def safe_divide(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return "Division by zero is not allowed."

result = safe_divide(10, 2)
print(result)  # 출력: 5.0

result = safe_divide(10, 0)
print(result)  # 출력: Division by zero is not allowed.

함수의 문서화

함수를 정의할 때, 함수의 설명을 문서 문자열(docstring)로 작성할 수 있습니다. 이는 함수의 첫 줄에 작성하며, 함수의 사용법을 문서화하는 데 유용합니다.

def greet(name):
    """
    이 함수는 주어진 이름으로 인사합니다.

    매개변수:
    name (str): 인사할 사람의 이름

    반환 값:
    None
    """
    print(f"Hello, {name}!")

help(greet)

이 기본 개념들을 통해 Python에서 함수의 정의와 사용 방법을 이해할 수 있습니다. 함수를 적절히 활용하면 코드를 더 구조화하고 재사용 가능하게 만들 수 있습니다.

반응형

'언어 > Python' 카테고리의 다른 글

while문 다루기  (1) 2024.06.03
if문 다루기  (0) 2024.06.03
입력과 출력 다루기  (1) 2024.06.03
정수와 부동소수점 다루기  (1) 2024.06.03
대입 연산자 총정리  (0) 2024.06.02