카테고리 없음

[파이썬/python] 피보나치 수열 return과 yield - jupyter notebook

바오밥 하단 2020. 4. 24. 01:08

 

1. 피보나치 수열 - return

return을 사용하기 때문에 해당하는 숫자 하나만 return 된다.

실행시키는 방법은 두가지가 있는데 두가지를 동시에 사용하기 위해서 __name__을 사용했다. 

ln[1]

%%writefile fibonacci.py

def Fibonacci(n):

    f1, f0 = 0,1

    for i in range(n):

        f1, f0 = f0, f1+f0

    return f1

if __name__ == "__main__":

    n = int(input("input: "))

    print(Fibonacci(n))

cs

 

1-1 %run 사용

 

ln[2]

%run fibonacci.py

cs

__name__에 걸려서 input을 이용해서 출력할 수 있다.

 

 

1-2 import 사용

Fibonacci(n)으로 fibonacci.py에 들어있는 함수만 사용하는 것이 가능하다.

ln[3]

import fibonacci

fibonacci.Fibonacci(8)

cs

 

 

2. 피보나치 수열 - yield

피보나치 과제가 또 나왔는데 이번엔 yield를 사용하는 문제이다. 

숫자 하나만 달랑 나오는 위의 함수와는 달리 for문을 사용해서 출력하기 때문에 1부터 해당 숫자까지 모두 출력된다.

ln[1]

%%writefile fibo.py

def Fibo(n):

    f1, f0 = 0,1

    for i in range(n):

        f1, f0 = f0, f1+f0

        yield f1

        

if __name__ == "__main__":

    n = int(input("input: "))

    fib = Fibo(n)

    for i in fib:

        print(i)

cs