Python Recursive Fonksiyonlar (Özyinelemeli Fonksiyonlar)

Python Recursive Fonksiyonlar (Özyinelemeli Fonksiyonlar)
Python Recursive Fonksiyonlar (Özyinelemeli Fonksiyonlar)
1

Python Recursive Fonksiyonlar (Özyinelemeli Fonksiyonlar), bir fonksiyonun kendisini çağırarak işlemleri gerçekleştirdiği özel bir tekniktir. Bu yöntem, özellikle matematiksel işlemler (faktöriyel, Fibonacci dizisi) veya tekrar eden problemleri çözmek için kullanılır. Bu yazıda, Python’da recursive fonksiyonların nasıl tanımlandığını, avantajlarını ve dikkat edilmesi gereken noktaları detaylıca inceleyeceğiz.

 

Recursive Fonksiyon Nedir?

Recursive bir fonksiyon, kendisini tekrar eden bir yapıya sahiptir. Temel olarak, iki önemli bileşenden oluşur:

  1. Base Case (Sonlanma Koşulu): Fonksiyonun durmasını sağlayan koşuldur. Recursive bir fonksiyon mutlaka bir base case’e sahip olmalıdır.
  2. Recursive Case (Tekrar Eden Yapı): Fonksiyonun kendisini çağırdığı bölümdür.

Recursive Fonksiyonların Avantajları

  • Karmaşık Problemleri Çözmek: Özellikle tekrar eden yapıları barındıran problemlerde daha az kodla çözüm sağlar.
  • Okunabilirlik: Kodun mantığını kolayca anlayabilirsiniz.
  • Matematiksel Hesaplamalar: Faktöriyel, Fibonacci gibi işlemler için idealdir.

Recursive Fonksiyonlarda Dikkat Edilmesi Gerekenler

  1. Base Case’in Olması: Eğer sonlanma koşulu (base case) tanımlanmazsa, fonksiyon sonsuz döngüye girer ve “RecursionError” oluşur.
  2. Yüksek Bellek Kullanımı: Recursive çağrılar, her yeni çağrıda bellek (stack) kullanır. Bu nedenle çok derin recursive çağrılardan kaçınılmalıdır.

Örnek: Faktöriyel Hesaplama

Faktöriyel, bir sayının kendisi ve kendisinden küçük tüm pozitif tamsayıların çarpımıdır. Recursive bir fonksiyon ile şu şekilde hesaplanabilir:

Kod Açıklaması:

  1. Eğer n 1’e eşitse, 1 değeri döndürülür.
  2. Eğer n 1’den büyükse, n değeri kendisinden bir küçük sayının faktöriyeliyle çarpılır.
  3. faktoriyel(5) çağrıldığında fonksiyon şu şekilde çalışır:
    5 * faktoriyel(4) → 5 * 4 * faktoriyel(3) → ... → 5 * 4 * 3 * 2 * 1

Kod çıktısı:


Örnek: Fibonacci Dizisi Örneği

Fibonacci dizisi, her sayının kendisinden önceki iki sayının toplamı olduğu bir dizidir. Recursive bir fonksiyon ile şu şekilde hesaplanabilir:

Kod Açıklaması:

  1. Eğer n 0 veya 1 ise, direkt olarak 0 veya 1 döndürülür (base case).
  2. Eğer n 1’den büyükse, fibonacci(n-1) ve fibonacci(n-2) toplanarak sonuç elde edilir.
  3. Recursive yapı, Fibonacci dizisinin her sayısını hesaplar.

Kod Çıktısı:

Paylaş
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


The reCAPTCHA verification period has expired. Please reload the page.

Yorumlar (1)

  1. 11 Aralık 2024

    eline emeğinize sağlık başarılarınız devamını dilerim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


The reCAPTCHA verification period has expired. Please reload the page.