본문 바로가기
프로그래밍/파이썬 문법

호기심 파이썬(함수 1탄 : 함수 만들기, 여러 개 입력받기*args)

by 인성패밀리 2022. 5. 13.
반응형

이번에는 함수에 대해서 알아보겠습니다.

 

함수는 수학시간에 했던 함수의 개념과 동일합니다.

수학에서의 함수는 아래 그림과 같이 어떠한 값을 넣으면 결과 값이 튀어나오는 구조입니다.

이와 같은 방식으로 프로그래밍의 함수로 마찬가지 입니다. 

함수의 구조를 살펴보겠습니다.

def function_name(parameter1 , parameter2 ... ):

    함수 호출 시 작동할 코드

    return 반환하고 싶은 값

 

def는 definde의 약자입니다.

function_ name 은 함수 이름을 작성하는 부분입니다.

parameter는 함수 호출 시 함수로 전달할 매개 변수 입니다.

return은 함수를 종료하고 함수를 실행한 값을 돌려줍니다.

 

1. 함수의 기본 사용법

매개변수와 return은 필요에 따라 사용할 수도 사용하지 않을 수도 있습니다. 복잡한 이야기이니 예시를 통해 사용방법을 알아보겠습니다.

def grade(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    elif score >= 70:
        return "C"
    else:
        return "F"


math_score = 78
result = grade(math_score)
print(result)

위의 코드를 사용하면 78에 해당하는 조건인 return "c"를 만나 함수의 결과값으로 c를 반환하게 됩니다.

반환된 값은 result 변수에 들어가게 됩니다. 마지막의 print(result)를 만나 최종출력하게 됩니다.

 

2. 리턴이 없는 함수

이번에는 return이 없는 함수를 만들어보겠습니다.

def grade(score):
    if score >= 90:
        print("A")
    elif score >= 80:
        print("B")
    elif score >= 70:
        print("C")
    else:
        print("F")


math_score = 78
grade(math_score)

이 코드는 return이 없는 함수입니다. 사실 return을 사용하지 않았다고 하여 아무것도 리턴하지 않는 것은 아닙니다. 이 함수는 함수를 호출하기만 하면 결과 값이 보이는 구조입니다. 이러한 경우 리턴 값은 None을 리턴하게 됩니다. 

 

parameter(매개변수)가 없어도 함수는 사용이 가능합니다.

 

함수를 사용하는 가장 큰 이유는 반복적인 기능의 코드를 하나의 함수로 묶는 이유가 가장 큽니다. 특정한 기능을 묶어서 코드의 양도 줄임과 동시에 가독성을 높일 수 있습니다. 어떠한 기능을 함수로 묶어서 여러가지 스스로 만들어보심이 좋을 것 같습니다.

 

 

3. 여러개의 값 리턴하기

이번에는 여러 개의 값을 리턴하는 함수를 만들어보겠습니다.

def xyz_distance(x, y, z):
    """내 집으로부터 떨어진 좌표를 리턴"""
    my_home = (20, -40, 15)
    
    return x-my_home[0], y-my_home[1], z-my_home[2]

now_pos_x = 100
now_pos_y = 54
now_pos_z = -40

# 내가 앞으로 이동해야할 좌표
x, y, z = xyz_distance(now_pos_x, now_pos_y, now_pos_z)
print(x, y, z)

이런 식으로 여러 개의 값을 리턴할 수 있습니다.

 

4. 여러개의 매개변수 전달받기

이번에는 다수의 변수를 함수로 전달해보겠습니다.

def sum_number(*args):
    total = 0
    for i in args:
        total += i

    return total

result = sum_number(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(result)

이 함수는 매개변수의 값을 모두 합하여 결과를 리턴하는 함수입니다. 함수의 매개변수 부분에 *args라는 것은 args라는 변수에 튜플의 형태로 매개변수들이 저장됩니다. 이러한 방식으로 다수의 변수를 함수로 전달할 수 있습니다.

 

함수의 기본 사용 방법 정리

def 함수이름(변수1, 변수2, ..., *args):

    함수 호출 시 실행할 코드

    return 반환 값

 

*args는 반드시 뒤에 있어야 합니다. 다른 변수보다 앞에 있게되면 의도하지 않은 방향으로 코드가 실행되거나 에러를 발생시키게 됩니다.

반응형

댓글