티스토리 뷰

Programming/Python

Python, Fibonacci 함수

JOECHO 2020. 9. 22. 15:59

 

안녕하세요. 죠쵸입니다.

Python, Fibonacci 함수 라는 주제로 포스팅을 하려고 합니다. Fibonacci 수열을 구하는 함수를 구현하면서 Python에서 기본적인 함수 사용방법을 익히고자 합니다. 함수를 구현 목적은 기본적으로 자주 사용되는 기능을 함수로 재사용 하기 위함입니다. 아주 간단한 프로그램은 함수를 사용하지 않는 경우도 있지만, 대부분의 프로그램은 함수들의 집합이라고 말씀 드려도, 틀리지 않습니다. 함수를 잘 사용하는 것은 초급에서 초중급으로 넘어가는 시작에 해당 될 것 같습니다. 

Fibonacci 수열은 첫번째 수와 두번째 수의 합이, 세번째 수가 되고, 두번째와 세번째 수의 합이 네번째 수가 되는 수열을 의미합니다.

F0 = 0, F1 = 1, Fn = Fn-1 + Fn-2

 

#Fibonacci 함수1

 

max 값보다 작은 Fibonacci 수열 구하는 함수를 아래와 같이 작성해 보았습니다. max는 외부에서 함수 내로 전달 하는 파라미터 값입니다. 초기값은 0과 1로 셋팅하였고, max 보다 작을 경우 계속 반복해서 first에 second 값을 대입하고, second에 first와 second를 더한 값으로 맵핑해주게 됩니다.  반복을 수행하면서 first 값을 출력함으로써 전체 Fibonacci 수열을 화면을 출력하게 됩니다.

def fibonacci(max):
    first, second = 0, 1
    print('Fibonacci Result')
    print('-' * 60)
    while first < max:
        print(first, end=' ')
        first, second = second, first + second
    print()
    print('-'*60)

 

max = 1000, 1000보다 작은 Fibonacci 수열을 출력하였을 때, 결과는 아래와 같습니다.

 

fibonacci(1000)

 

#Fibonacci 함수2

 

함수 내부에서 Fibonacci 수열을 출력할 수 있지만, 이번에는 리스트에 Fibonacci 수열을 담아서 함수가 끝났을 때 최종 리스트를 반환하는 Fibonacci 함수 예제입니다.

def fibonacci2(max):
    first, second = 0, 1
    result = []
    while first < max:
        result.append(first)
        first, second = second, first + second
    return result

 

이번에도 이전과 함수와 같이 max = 1000 미만의 Fibonacci 수열을 구하도록 호출해 보았습니다. 출력된 Fibonacci 수열이 [0, 1, .....987] 과 같이 리스트로 반환된 것을 볼 수 있습니다.

 

    print('Fibonacci Result')
    print('-' * 60)
    print(fibonacci2(1000))
    print('-' * 60)

 

Python의 함수 예제를 통해서 Return 값이 있는 함수, Return 값이 없이 내부적으로 출력만 하는 함수를 보았는데요, 가장 기본적인 함수 예제를 통해서 함수의 구현및 호출방법을 보았습니다. 다음에는 함수에 파라미터를 전달하는 방법을 쉽게 정리하도록 하겠습니다.

방문해 주셔서 감사합니다. 여러분의 공감하기(), 댓글과 구독은 저에게 힘이 됩니다.

이상으로 죠쵸였습니다.

'Programming > Python' 카테고리의 다른 글

Python print() 함수 사용하기  (3) 2020.09.19
파이썬 흐름제어  (2) 2020.09.10
파이썬 문자열 Slicing 과 리스트  (0) 2020.09.07
파이썬 문자열 처리  (2) 2020.09.06
Hello Python  (0) 2020.09.05
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함