python’da özyineleme

Python işlevleri ve meth




Python Özyineleme Nasıl Kullanılır

Python özyineleme yeni başlayanlar için göz korkutucu bir konudur. Özyinelemenin zor olduğu efsanesini tanımlayarak ortadan kaldıralım. Özyineleme, bir işlevin kendisini çağırdığı bir programlama yöntemidir.

Bu kulağa basit geliyor, değil mi? Alıştığınız zaman, özyineleme zor bir kavram değildir.

Bu Python eğitiminde, özyineleme ve nasıl çalıştığı hakkında konuşacağız. Bu programlama yöntemine başlamanıza yardımcı olmak için faktöriyel işlevleri kullanan bir özyineleme örneğini inceleyeceğiz.




Özyineleme Nedir?

Özyineleme, bir şeyi şu terimlerle tanımladığınız yerdir. kendisi.

Bir özyinelemeli işlev, sorunları kendisini tekrar çağırarak çözer. Bu davranış, Python gibi çoğu büyük programlama dilinde desteklenir. Bunlar, bilgisayar bilimi ve veri biliminin çok önemli bir parçasıdır.

Özyineleme, bir sorunun çözümü, tümü aynı formülü kullanan daha küçük problemlere bölünerek bulunabildiğinde faydalıdır. Bu tür sorunlara genellikle “özyinelemeli algoritmalar” Bunları çözmenin anahtarı adındadır!




Yinelemeli ve Özyinelemeli

Bir algoritmayı çözmenin iki yolu vardır: yinelemeli veya yinelemeli.

Algoritmalara yönelik yinelemeli çözümler, “güçlü ama çirkin olarak kabul edilir.” İşi hallederler ama tam olarak en zarif şekilde yapmazlar. Özyinelemeli algoritmaları doğru bir şekilde anlamak için yinelemeli işlevlere bakmamız gerekiyor.

Katılımcıların %81'i bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleştirin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan az zaman harcadı.

Yinelemeli bir function, bir döngü kullanarak bir sorunu çözen bir işlevdir. Bu döngü tamamlanana kadar bir döngü içindeki kodu yürütür. Özyinelemeli bir işlev, bir sorunu daha küçük parçalara bölen ve her bir parçayı kendisini çağırarak çözen bir işlevdir.




Faktörler: Yinelemeli Örnek

Faktörler, özyinelemeyi ve özyinelemeyi göstermenin iyi bir yoludur. yinelemeli düşünme. Matematikte faktöriyeller, bir sayının ve her sayının birbiriyle çarpılmadan önceki toplamıdır.


5'in faktöriyeli 5 * 4 * 3 * 2 * 1'e eşittir. 2'nin faktöriyeli 2 * 1'e eşittir.

Bir hesaplamak için faktöriyel, yinelemeli bir fonksiyon yazabiliriz:

def factorial(sayı): aralıktaki n için toplam = 1 (1, sayı + 1): toplam = toplam * n toplam dönüş

Bu işlev bir döngü kullanır 1'in aralığındaki ve belirttiğimiz sayı artı 1 içindeki tüm sayıları yinelemek için, her yineleme için, döngünün yinelediği sayı, Faktöriyel bulmak için fonksiyonumuzu çağıralım:

cevap = factorial(4) print(answer)

Kodumuz şunu döndürür: 24. Bu çözüme ulaşmak için kodumuz şunları çalıştırır:

 
  • 1 * 1 = 1
  • 2 * 2 = 4
  • 4 * 3 = 8
  • 8 * 4 = 24

Gördüğünüz gibi kodumuz 4'ü kendisinden küçük tüm sayılarla ve ardından kendisi ile çarpar.

Bu kod işlevseldir. Tek dezavantajı, olabileceği kadar zarif olmamasıdır. Özyinelemeli işlevlerin işe yaradığı yer burasıdır.




Faktörler: Özyineleme Örneği

Faktoriyel hesaplayan özyinelemeli bir işlev yazalım. Yeni bir Python dosyası açın ve aşağıdaki kodu yapıştırın:

def factorial(number): if sayı == 1: dönüş 1 başka: dönüş (sayı * faktöriyel(sayı - 1))

Bu kod özyinelemeli yaklaşımı kullanır. Bu işlev çalıştırıldığında, bir ”if” deyimi yürütülür. Bu ifade, fonksiyona iletilen sayının 1'e eşit olup olmadığını kontrol eder. Varsa, fonksiyonumuz 1 döndürür. Aksi takdirde, sayımızın faktöriyel hesaplanır.

Bu hesaplama, çarpılarak çalışır. önceki sayının faktöriyeliyle fonksiyona geçirilen sayı. Bu işlev, “number” 1'e eşittir. İşlev her çağrıldığında, “sayı” 1 azaltılır


4 numara ile kodumuzu bir deneyelim:

answer = factorial(4) print(answer)

24 yanıtı döndürülür. Cevabımız doğrudur; son örneğimizle aynı. Çözümü bulduk bu sorun yinelemeli değil yinelemeli.

Hala biraz yardıma ihtiyacınız var mı? Yinelemenin başka bir örneğini inceleyelim.




Fibonacci Dizisi ile Özyineleme

Fibonacci dizisi, her sayının önceki iki sayının toplamı olduğu matematiksel bir dizidir.Bu dizi 0, 1, 1, 2, 3, 5, 8, 13 vb. ile başlar.

Bu sıra, bir sonraki sayıyı bulmak için iki sayı ekler. Bu, özyineleme için idealdir.

Bir Python dosyası açın ve şu kodu yapıştırın:< br>

 
def fibonacci(sayı): if numarası <= 1: dönüş numarası başka: dönüş(fibonacci(sayı - 1) + fibonacci(sayı - 2))

Bu kod, listede “sayı” 1'den fazladır. Aksi takdirde, “sayı döndürülür”. Şimdi fonksiyonumuzu çağıralım:

"Python.Engineering hayatıma en ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra, hayalimdeki işi buldum. hayattaki değerlerim ve hedeflerim ile uyumlu!"

Venüs, Rockbot'ta Yazılım Mühendisi

Yürütme değişkeni, hesaplamak istediğimiz fibonacci dizisi. Bunu, 1 aralığındaki her sayı ve “executions”

için fibonacci() işlevimizi çağıran bir for döngüsü oluşturmak için kullanırız. for döngümüz başlamadan önce, “Fibonacci Dizisi:” konsola. Bu örnekte, “for” döngü yürütür:

fibonacci(1) fibonacci(2) fibonacci(3) fibonacci(4) fibonacci(5 )

Kodumuzu hep birlikte çalıştıralım ve ne olduğunu görelim:

Fibonacci Dizisi: 0 1 1 2 3

Kodumuz fibonacci dizisindeki ilk beş sayıyı hesaplar. “executions”'ın değerini artırarak daha fazla sayı hesaplayabiliriz.




Yineleme Derinliği ve Temel Koşulları

Bir özyinelemeli işlevin bir temel koşulu olmalıdır. Bu, belirli bir temel durum karşılandığında özyinelemeyi durduran bir koşuldur. Temel işlev olmadan sonsuz bir döngü oluşturulur.


Bir özyinelemeli işlev, varsayılan olarak kendini en fazla 1.000 defa çalıştırabilir. Bu sınıra ulaşıldığında, şuna benzer bir hata görünür:

RecursionError: maksimum özyineleme derinliği aşıldı

Fibonacci programımız için temel koşul:

... if sayı <= 1: dönüş numarası …

Bu koşul fibonacci programımızda “number” değerinin 1'e eşit veya küçük olup olmadığını kontrol eder. Eğer öyleyse, “number” değeri döndürülür, aksi halde özyinelemeli fonksiyon başlar.




Neden? Özyinelemeyi Kullanmalı mıyım?

Yinelemeli işlevlere göre özyineleme kullanmanın avantajı nedir? Teknik olarak, her iki yöntem de aynı sonucu verebilir. Özyinelemenin özelliği, okunmasının daha kolay olmasıdır.

Bir özyinelemeli işlev gördüğünüzde, bir problemin cevabının onu daha küçük parçalara ayırmada yattığı açıktır. Yinelemeli döngüler bazen daha hızlı olabilse de, yinelemeli işlevler okunabilirliklerinden dolayı genellikle tercih edilir.

Özyinelemeli işlevlerin okunması daha kolay olduğu için, bakımı ve hata ayıklaması da daha kolaydır. Bu, özellikle anlaşılması zor olabilecek karmaşık algoritmalar yazarken kullanışlıdır.




Sonuç

Özyinelemeli bir işlev, bir sorunun çözümünü bulmak için kendini çağıran bir işlevdir.  ;

Özyinelemeli işlevler, bir sorunu birden çok parçaya böler ve yineleme başına sorunun bir bölümünü çözer. Özyinelemeli fonksiyonlar, fibonacci dizisindeki faktöriyelleri ve sayıları hesaplamak için yaygın olarak kullanılır. Ayrıca bir dizi algoritmada da kullanılırlar.

Artık Python'da özyinelemeli işlevlerle çalışmaya hazırsınız.





python'da özyineleme: StackOverflow Questions

Tutorials