경제 데이터 분석을 위해 다양한 통계 자료들을 사용하게 됩니다. 보통은 국가기관이나 포털에서 제공하는 정도만으로도 충분히 훌륭하긴 하지만, 간혹 엑셀 같은 스프레드시트로 제공되는 데이터를 가공하는 경우도 있습니다. 그래도 부족하다고 생각된다면 프로그램 언어는 직접 배워서 해보는 것도 시도해 볼만합니다. 그럼 데이터 사이언스에 많이 사용되는 파이썬을 배워보도록 하겠습니다.
코드를 묶어 보자
개발자 두 명이 같이 구구단 출력하는 프로그램을 만든다고 가정해 보겠습니다.
아.. 물론 이런 걸 두 명의 개발자가 하면 인건비 감당이 안 되겠지만
현실에서는 좀 더 복잡한 로직을 나눠서 개발하는 경우가 많습니다.
한 개발자는 사용자 입력 부분을 작성합니다.
다른 개발자는 사용자 입력을 전달받아서 구구단을 출력하는 부분을 작성합니다.
그러면 두 개발자는 사용가 입력한 숫자 하나를 공유해야 합니다.
그 숫자를 a라고 하겠습니다.
이 a를 구구단을 계산하는 함수 calc에 넘겨줍니다.
따로 리턴하는 값은 없습니다.
이걸 코드로 적으면 아래처럼 작성하면 됩니다.
def calc(a):
#구구단 출력
즉 함수는 def 키워드로 시작하고
그다음 함수명을 적고
괄호 안에 넘겨받은 인자를 적습니다.
구구단 출력하는 부분은 아래처럼 작성될 겁니다.
def calc(a):
for i in range(1,10):
print('%d X %d = %d' %(a, i, a*i))
사용자 입력을 받는 부분은 사용자 입력을 받고
그냥 calc(a)라고 함수만 호출하면 됩니다.
while True:
a = int(input('출력을 원하는 단을 입력하세요 : '))
if a == 0:
print('프로그램을 종료합니다.')
break
calc(a)
두 개발자가 작성한 코드를 합쳐서 돌리면 아래처럼 잘 수행될 겁니다.
return 값이 있는 경우
함수는 수행 후 결과 값을 돌려줄 수 있습니다.
아래와 같은 점화식을 가진 수열이 있다면 n = 10 일 때 얼마일지 계산해 보겠습니다.
a[i+1] = 2 * a[i] +1
a[1] = 1
i = 1 .. n
점화식을 함수로 그대로 표현해 보겠습니다.
def funcA(i):
if i == 1:
return 1
return 2 * funcA(i-1) - 1
함수 funcA 는 숫자 i 를 입력받으면
점화식의 정의 그대로 연산을 수행하고 값을 돌려줍니다.
초기값일 때는 지정된 값인 1을 돌려줍니다.
만약 i 값에 5가 넘어갔다면 아래 순서로 함수가 호출되고
i = 1에서 1이 리턴되면 다시 하나씩 위로 리턴값이 전달됩니다.
i = 5 일때 2 * funcA(4) + 1 값을 계산
i = 4 일때 2 * funcA(3) + 1 값을 계산
i = 3 일때 2 * funcA(2) + 1 값을 계산
i = 2 일때 2 * funcA(1) + 1 값을 계산
i = 1 일때 if 문에서 1이 리턴
이러한 형태의 함수 호출을 재귀 호출이라고 부릅니다.
점화식을 구현할 때 많이 사용되죠.
AI 한테 시켜보자
팩토리얼 계산도 함수로 할 수 있을 것 같은데요.
팩토리얼 계산을 수행하는 파이썬 프로그램을 작성해 줘.
단, 함수재귀호출로 작성 부탁해.
AI 한테 시켜보겠습니다.
MS bing의 COPILOT을 사용했습니다.
설명까지 완벽하군요
마치며
협업 관점에서 함수를 생각해 봤고
점화식으로 나타내어지는 문제가
함수의 재귀 호출로 쉽게 구현되는 걸 확인하였습니다.
파이썬은 다른 훌륭한 개발자 분들이
이미 많은 함수들을 만들어 놓으셔서
잘 찾아서 가져다 잘 사용하면 됩니다.
곧 활용하는 예제를 해봐야겠네요.
참고자료...
'도구' 카테고리의 다른 글
파이썬을 배워보자[엑셀읽기] (0) | 2024.06.30 |
---|---|
파이썬을 배워보자[파일입출력] (0) | 2024.06.29 |
파이썬을 배워보자[while문] (1) | 2024.06.26 |
파이썬을 배워보자[이중 for문] (0) | 2024.06.24 |
파이썬을 배워보자[반복문] (0) | 2024.06.18 |
댓글