İlgili youtube videosu bağlantısı: youtu.be/R-GHbsd20c8
Video içerisinde hazırlanan kodlar:
from IPython.display import Image, display
display(Image(url='https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Fibonacci_Rabbits.svg/330px-Fibonacci_Rabbits.svg.png', width=500, unconfined=True))
!python -V
# 1.Çözüm: 2 değişken kullanarak
a, b = 1, 1
for i in range(10):
print(a)
a, b = b, a+b
#2. Çözüm: for döngüsü ve fonksiyon kullanarak
def fibonacci(n):
fibo = [1, 1]
for _ in range(2, n):
fibo.append(fibo[-1] + fibo[-2])
return fibo
print(fibonacci(10))
def fibonacci(n):
a, b = 1, 1
for i in range(n):
yield a
a, b = b, a+b
fibo = list(fibonacci(10))
print(fibo)
#3. Çözüm: while döngüsü kullanarak
n = 10
sayi1 = 1
sayi2 = 1
sira = 1
while sira <= n:
print(sayi1, end=" ")
sayi1, sayi2 = sayi2, sayi1+sayi2
sira += 1
#4. Çözüm: Liste ve fonksiyon kullanarak
def fibonacci(n):
if n<=2:
return [1,1][:n]
else:
a, b = 1, 1
fibo = [a, b]
for i in range(n-2):
a, b = b, a+b
fibo.append(b)
return fibo
print(fibonacci(10))
#5. Çözüm: Özyineleme (recursive) ile n. fibonacci sayısının bulunması
def fibonacci_sayisi(n):
if n<=1:
return n
else:
return (fibonacci_sayisi(n-1) + fibonacci_sayisi(n-2))
fibonacci_sayisi(4)
#fibonacci_sayisi(3) + fibonacci_sayisi(2)
#1 + 1 + 1 + 0
#6. Çözüm: Özyineleme (recursive) ile ilk n fibonacci sayısının bulunması
def fibonacci_sayisi(n):
if n<=1:
return n
else:
return (fibonacci_sayisi(n-1) + fibonacci_sayisi(n-2))
for i in range(1,11):
print(fibonacci_sayisi(i))
#7. Çözüm: Özyineleme ve liste (recursive)
def fibonacci_sayilari(n):
if n<=2:
return [1, 1][:n]
else:
fibo = fibonacci_sayilari(n-1)
print("test: ", fibo)
fibo.append(fibo[-1] + fibo[-2])
return fibo
print(fibonacci_sayilari(10))
#8. Çözüm: lambda ve reduce kullanımı
from functools import reduce
fib = lambda n: reduce(lambda x, y: x+[x[-1] + x[-2]], range(n-2), [1,1])
fib(10)
#9. Çözüm: lambda ve map kullanımı
def fibonaccimap(n):
fibomap = [1, 1]
any(map(lambda x: fibomap.append(sum(fibomap[-2:])), range(2, n)))
return fibomap
print(fibonaccimap(10))
#10. Çözüm: List comperehension ve Assignment Expression (python >= 3.8)
fibo = [1, 1]
fibo += [(fibo := [fibo[1], fibo[0]+fibo[1]]) and fibo[1] for k in range(8)]
print(fibo)
Editör editi: sitedeki bazı diğer benzer yazılar için;
bkz: Python ve Excel ile 6 Tutturuncaya Kadar Sayısal Loto Oynamak
bkz: Excel içerisinde python kodu yazmak (xlwings kütüphanesi)
bkz: Python'da satır satır text dosyası okumak ve güncellemek
bkz: Python'da string içindeki parantezleri ve yazıları silmek
bkz: Python'da string'i boşluk karakterine göre bölmek (split fonksiyonu)
bkz: Python can only concatenate str (not "NoneType") to str hatası ve çözümü