Press "Enter" to skip to content

Python Recursive (Özyinelemeli) Fonksiyonlar

Yaşar SAFALI 0

Python Recursive

Recursive fonksiyonlar kendi kendilerini çağıran,yineleyen fonksiyonlardır.Fonksiyonları alt parçalara ayırarak tekrar eden yapılardır.Recursive fonksiyon oluştururken en çok bilinen yanlış return ifadesinin kesin olarak kullanılması gerektiğidir.Recursive fonksiyonlar da asıl amaç fonksiyonun kendini çağırmasıdır.Fonksiyonlar yazımızı okumadıysanız önce onu okumanızı tavsiye deriz.Python Recursive

Örnek olarak aşağıdaki fonksiyonu inceleyelim

def EkranaYaz(sayi):
    if(sayi==1):
        print(sayi)

    else:
        print(sayi)
        EkranaYaz(sayi-1)

EkranaYaz(10)

Output:

10
9
8
7
6
5
4
3
2
1

Yukarıdaki fonksiyon 10 dan 1 e kadar olan sayıları recursive olarak ekrana yazmaktadır.Fonksiyon incelendiğinde kendi içerisinde tekrardan kendini çağırmaktadır.

  • 1 den n e kadar olan sayıların toplamını recursive olarak hesaplayan fonksiyon.Aşağıdaki fonksiyonda ise bir toplam değeri istenilmektedir.Fonksiyon çağrıldığı yere bir sonuç döndereceği için return deyimi kullanılır.
def EkranaYaz(sayi):
    if(sayi==1):

        return  1
    else:

        return sayi+EkranaYaz(sayi-1)

print(EkranaYaz(10))

Output:

55

  • Bir karakter dizisinin elemanlarını karakter karakter ekrana yazdıran recursive fonksiyon
    def EkranaYaz(kelime, uzunluk):
        if (uzunluk == len(kelime) - 1):
            print(kelime[uzunluk])
    
    
        else:
            print(kelime[uzunluk])
            EkranaYaz(kelime, uzunluk + 1)
    
    
    kelime = "yazılım"
    print(EkranaYaz(kelime, 0))

    Output:

y
a
z
ı
l
ı
m

  • Bir karakter dizisinin elemanlarını karakter karakter  tersten ekrana yazdıran recursive fonksiyon
    def EkranaYaz(kelime,uzunluk):
        if(uzunluk==0):
            print(kelime[uzunluk])
    
        else:
            print(kelime[uzunluk])
            EkranaYaz(kelime,uzunluk-1)
    
    kelime="yazılım"
    print(EkranaYaz(kelime,len(kelime)-1))

    Output:

m
ı
l
ı
z
a
y

  • Bir sayı dizisinin elemanlarını recursive olarak toplayan fonksiyon
    def Topla(liste,uzunluk):
        if uzunluk==0:
            return liste[0]
        else:
            return liste[uzunluk]+Topla(liste,uzunluk-1)
    
    liste=[1,2,3,4,5]
    print(Topla(liste,len(liste)-1))

    Output:

    15

 

  • Faktoriyel hesabı yapan recursive fonksiyon
    def Faktoriyel(sayi):
        if sayi==1:
            return 1
        else:
            return sayi*Faktoriyel(sayi-1)
    
    
    print(Faktoriyel(5))

    Output:

120

 

  • Bir sayının kuvvetini hesaplayan recursive fonksiyon
    def Usal(sayi,us):
        if us==1:
            return sayi
        elif us==0:
            return 1
        else:
            return sayi*Usal(sayi,us-1)
    
    
    print(Usal(5,2))

    Output:

    25

  • Bir sayının pozitif bölenleri hesaplayan Recursive Fonksiyon
    def PozitifBolen(sayi,i):
        if sayi%i==0:
            print(i)
        if sayi==i:
            return sayi
    
        return PozitifBolen(sayi,i+1)
    
    
    print(PozitifBolen(45,1))

    Output:

    1
    3
    5
    9
    15
    45
    45

Bir sonraki yazımızda görüşmek dileğiyle

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir