티스토리 뷰

반응형

파이썬 함수

안녕하십니까 Hun!입니다!


여러분 함수는 무엇이라고 생각하십니까? 그 동안 수학용어로 많이 들어보셨을 겁니다. 저는 함수란 어떠한 목적을 가진 시스템(환경)이라고 생각합니다. 왜냐하면 함수는 입력하는 값이 있으면 반드시 출력되는 값이 있어서 시스템과 역할이 동일하기 때문입니다.(제가 아는 시스템 용어와 여러분이 아는 의미가 다를 수도 있을 것 같습니다.) 함수는 예시로 들면 두 개의 변수를 가지는 간단한 수학 식 "y=x+1"이 있습니다. 우변의 x가 입력되는 값이고 좌변의 y가 출력되는 값이라고 하면 입력 값이 5일 경우 출력 값은 6이 나오게 될 것입니다. 


프로그래밍에서의 함수도 이와 비슷합니다. 속성을 내포하고 있는 값이 입력되면 어떠한 목적을 가진 시스템을 거치어서 그 결과로 시스템이 추구한 값이 출력되는 구조를 프로그래밍 언어로 표현하는 것입니다. 오늘은 파이썬에서 함수를 표현하는 방법과 예시를 소개하고자 합니다.


파이썬에서 함수를 표현하면 〈'def' + 함수이름(매개변수) + ':'〉으로 'def'라는 예약어로 함수 헤더를 정의하고 아래에 입력 값에 의한 출력 값이 나오는 과정이 위치합니다. 헤더는 함수 정의의 첫 부분으로 이름과 매개변수를 포함합니다. 이름은 예약어를 피하여서 자유롭게 설정하면 되고 매개변수는 인수로서 수행되어 입력 값이 들어가게 된다고 생각하시면 됩니다. 아래 예시로 음수, 양수의 숫자를 입력하여 절댓값으로 출력되는 함수를 표현하여 보았습니다.


def absolute(x):

    if x >= 0:

        return x

    else:

        return -x


위의 함수의 함수이름과 매개변수는 각각 'absolute'와 'x'로 표현하였습니다. 헤더의 아래 부분은 인수 x가 음수인지 양수인지 판별하는 과정으로 x가 0보다 크거나 같으면 입력된 값 그대로 반환하고 아닐 경우 단항연산자 '-'를 입력된 값 앞에 붙여 반환되는 것을 if-else절로 구성하였습니다. 



여기서 반환한다는 것은 말 그대로 다시 되돌려준다는 의미로 함수에서 연산된 값을 밖으로 넘긴다는 것으로 'return'이라는 반환문을 사용합니다. 또 다른 예시의 함수를 파이썬으로 표현하여 보겠습니다.


def great_common_divisor(x1, y1):

    if x1 > y1:

        result = y1

    else:

        result = x1   

    while (not((x1%result==0) and (y1%result==0))):

        result = result - 1   

    return result


위의 예시는 2개의 양수를 인수로 입력받아서 최대공약수를 계산하는 함수입니다. 물론 '유클리드 호제법'을 사용할 수 있지만 저는 위와 같이 나타내었습니다. 위의 함수를 설명하면 헤더의 매개변수로 x1과 y1으로 2개를 인수로 받아서 x1과 y1 중에서 작은 값을 if-else 절을 통하여 찾아내어 result에 대입합니다. 작은 값을 찾는 이유는 최대공약수는 인수 둘 중에서의 작은 값보다 더 작거나 같기 때문입니다. 그 후 while 반복문에서 x1과 y1을 result 동시에 나누어 나머지 값이 0이 되도록 하기위하여 맨 처음 result 값이 만족하지 않으면 만족할 때까지 1을 뺄셈하여 줍니다. 만족하는 최대공약수가 나오면 return문을 사용하여 결과를 반환합니다. 위의 두 가지 함수의 예를 보면 공통적으로 값을 반환하는 것을 볼 수 있습니다. 하지만 반환하지 않는 함수도 있는데 그러한 함수는 'print문'을 사용합니다. 


지금까지 대략적인 설명과 예시를 곁들여서 함수에 대해서 설명하였습니다만 도움이 되셨는지 모르겠습니다. 다음에는 재귀함수 같은 기법을 예시와 함께 함수에 대해 자세히 소개하도록 하겠습니다. 이상으로 포스팅을 마치도록 하겠습니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함