Python'da Döngüler
Python’da Tipleri ve Kullanımları
Python programlamada döngüler, bir dizi işlemi tekrar etmek için kullanılır. Python’da en yaygın döngü türleri for döngüsü ve while döngüsüdür. Bu makalede Python’daki döngü yapıları, döngülerde kullanılan önemli komutlar (break, continue gibi) ve yazılım mülakatları ya da LeetCode gibi platformlardaki soru çözümleri için önemli olan konular ele alınacaktır.
1. for
Döngüsü
for döngüsü, genellikle iterable (listeler, diziler, stringler gibi) veri yapıları üzerinde gezinmek için kullanılır.
Örnek Kullanım:
Yazılım geliştirme ve LeetCode benzeri sorular içeren algoritma mülakatlarına hazırlanmak için en uygun programlama dili genellikle Python
olarak kabul edilir. Bunun birkaç sebebi var. Devam etmeden önce yazılım geliştirme mülakatları ya da competitive programlama için kullanılan en yaygın dillerin özelliklerini sıralayalım.
Çıktı:
Bu döngü, verilen listedeki her bir elemanı tek tek gezerek yazdırır.
for döngüsünün range() fonksiyonu ile kullanımı:
range()
fonksiyonu, belirli bir aralıkta sayılar üretir ve for döngüsü ile birlikte sıkça kullanılır.
Örnek Kullanım:
Çıktı:
2. while
Döngüsü:
while
döngüsü, belirli bir koşul doğru olduğu sürece çalışmaya devam eder. Koşul False olduğunda döngü sona erer.
Örnek Kullanım:
Çıktı:
Bu döngü, i
değişkeni 5
olana kadar çalışır ve her adımda i bir arttırılır.
3. break
ve continue
Kullanımı:
break
:
Döngüyü tamamen sonlandırır. break ifadesine ulaşıldığında döngü sona erer ve döngünün dışına çıkılır.
Örnek Kullanım:
Çıktı:
Bu örnekte, i 3 olduğunda döngü break
ile sonlanır.
continue
:
Döngünün o anki iterasyonunu atlayarak bir sonraki iterasyona (adıma) geçer.
Örnek Kullanım:
Çıktı:
Bu örnekte, i 3 olduğunda continue
ifadesi çalışır ve o iterasyon atlanır.
4. İç İçe Döngüler:
Döngüler, başka bir döngünün içinde kullanılabilir. İç içe döngüler genellikle iki boyutlu veri yapılarıyla (örneğin, matrisler) çalışırken kullanılır.
Örnek Kullanım:
Çıktı:
Bu örnekte, her i
değeri için j
değeri döngüye girer ve bu şekilde iç içe iki döngü çalıştırılır.
5. İç İçe Döngülerden Çıkış:
İç içe döngülerden çıkmak için break ifadesi tek başına yeterli olmayabilir. Sadece en içteki döngüden çıkış sağlar. İç içe döngülerden tamamen çıkmak için birkaç çözüm yöntemi vardır:
flag
Kullanmak:
Bir bayrak
(flag
) değişkeni kullanılarak iç içe döngülerden çıkılabilir.
Örnek Kullanım:
fonksiyon
Kullanmak:
Bir fonksiyon içindeki döngülerden return
ile tamamen çıkılabilir.
Örnek Kullanım:
Çıktı:
6. Döngülerin Sonunda else
Kullanımı:
Python’da döngüler, normal bir şekilde sona ererse else
bloğu çalıştırılır. Ancak döngü break ifadesi ile sona erdirilirse, else bloğu çalışmaz.
Çıktı:
Bu örnekte break
ifadesi kullanıldığı için else
bloğu çalışmaz. Ancak break
olmadan döngü tamamlanırsa else
bloğu devreye girer.
7. LeetCode ve Mülakat Soruları için Öneriler
7.1. LeetCode Sorusu: “Two Sum”
Bu soru, bir dizide iki sayının toplamının belirli bir hedef değeri vereceği iki indeksi bulmayı gerektirir. Döngüler ve koşullu ifadeler sıklıkla kullanılır.
Bu soruyu iç içe döngülerle aşağıdaki şekilde çözebiliriz:
LeetCode Sorusu: “Valid Parentheses”
Bu soruda parantezlerin doğru bir şekilde eşleşip eşleşmediğini kontrol eden bir çözüm yazmanız istenir.
Bu soruyu iç içe döngülerle aşağıdaki şekilde çözebiliriz:
8. Sonsuz Döngüler
Bir döngü sonsuza kadar çalışabilir. Bu genellikle koşulun yanlış yazılması veya bilinçli olarak sonsuz bir döngü oluşturulmak istendiğinde gerçekleşir. Genellikle döngünün bir noktasında return
veya break
kullanılarak döngüden çıkılır.
9. Optimizasyon İpuçları
Döngü İçerisinde Gereksiz Hesaplamalardan Kaçının: Döngü içerisinde sabit olan hesaplamaları döngü dışında yaparak performansı artırabilirsiniz.
enumerate() Fonksiyonunu Kullanın: Döngüde hem öğeyi hem de indeksini kullanmak için enumerate() fonksiyonunu kullanabilirsiniz.
** Çıktı: **
Sonuç:
Python’daki döngü yapıları ve kontrol ifadeleri, algoritma sorularında ve günlük programlama problemlerinde önemli bir yere sahiptir. Bu makalede ele alınan konular, yazılım mülakatlarına hazırlık ve LeetCode gibi platformlarda sorular çözerken faydalı olacaktır. Döngülerde performans optimizasyonu yapmayı, break ve continue gibi ifadelerle program akışını yönetmeyi öğrenmek, daha etkin ve doğru kod yazmanıza yardımcı olacaktır.