Python

Python’da for ve while Döngüleri

Python'da for ve while Döngüleri

Programlama dillerinde belirli işlemleri art arda, manuel olarak tekrar yazmak hem zaman kaybına yol açar hem de kodun bakımını zorlaştırır. Python döngüler yapısı, belirli bir kod bloğunu bir koşul sağlandığı sürece veya bir veri kümesi üzerinde eleman bitene kadar tekrar tekrar çalıştırmayı sağlar. Yazılım geliştirme süreçlerinde veri listelemek, dosyaları satır satır okumak veya kullanıcıdan geçerli bir girdi alana kadar beklemek gibi birçok işlem doğrudan döngüler aracılığıyla gerçekleştirilir.

Döngü Kavramı ve Temel Mantık

Döngüler, algoritmanın akışında belirli bir adımın birden fazla kez icra edilmesini sağlayan kontrol yapılarıdır. Python’da temel olarak iki farklı döngü türü bulunur:

  • for döngüsü: Belirli bir koleksiyonun (liste, demet, sözlük, dize gibi yinelenebilir veri tiplerinin) veya belirli bir sayı aralığının üzerinde gezinmek için kullanılır.
  • while döngüsü: Belirli bir mantıksal koşul doğru (True) olduğu sürece çalışmaya devam eden döngü yapısıdır.

Her iki döngü yapısı da aynı algoritmik problemleri çözebilecek esnekliğe sahip olsa da okunabilirlik ve kod mimarisi açısından kullanım alanları farklılık gösterir.

for Döngüsü ile İterasyon

Python’daki for döngüsü, C veya Java gibi dillerdeki geleneksel sayaç mantığıyla çalışan for döngülerinden biraz farklıdır. Python’da for yapısı doğrudan bir nesne koleksiyonunun elemanları üzerinden geçer; bu duruma programlamada iterasyon adı verilir.

meyveler = ["elma", "armut", "muz", "çilek"]

for meyve in meyveler:
    print("Mevcut meyve:", meyve)

Bu örnekte “meyveler” adında dört elemandan oluşan bir liste tanımlanmıştır. for döngüsü listenin ilk elemanından başlayarak sırasıyla her bir öğeyi geçici olarak “meyve” değişkenine atar ve girintili kod bloğunu çalıştırır. Listenin son elemanına ulaşıldığında döngü kendiliğinden sonlanır.

range() Fonksiyonu ile Sayaç Oluşturma

Bir işlemi belirli bir sayıda tekrarlamak gerektiğinde en sık kullanılan yardımcı araç range() fonksiyonudur. Bu fonksiyon, belirtilen aralıkta tamsayı dizisi üretir.

for sayac in range(1, 6):
    print("Döngü adımı:", sayac)

Yukarıdaki kod bloğunda range(1, 6) ifadesi 1’den başlayıp 6’ya kadar (6 hariç) olan sayıları üretir. Döngü beş kez çalışır ve ekrana sırasıyla 1, 2, 3, 4 ve 5 değerlerini yazdırır. range() fonksiyonu tek parametreyle çağrılırsa (örneğin range(5)) sıfırdan başlar, üç parametre verilirse (range(0, 10, 2)) son parametre artış miktarını belirler.

while Döngüsü ile Koşullu Tekrarlar

while döngüsü, çalışma mantığını bir yineleme koleksiyonundan değil, doğrudan boolean bir ifadeden alır. Koşul doğru (True) olduğu sürece döngü gövdesi çalışmaya devam eder. Koşul yanlış (False) hale geldiğinde döngü sonlanır.

sayac = 1

while sayac <= 5:
    print("Sayac degeri:", sayac)
    sayac += 1

Bu örnekte “sayac” değişkeni 1 değeri ile başlatılmıştır. Döngü koşulu sayacın 5’ten küçük veya eşit olup olmadığını denetler. Kod bloğunun içinde sayacın değeri her adımda bir artırılır (sayac += 1). Değer 6 olduğunda koşul bozulur ve program döngüden çıkar.

Sonsuz Döngü Riski

while döngülerinde en sık karşılaşılan hata sonsuz döngüdür (infinite loop). Eğer döngü gövdesinde koşulu değiştirecek bir güncelleme yapılmazsa, koşul sürekli True kalır ve program kilitlenir.

sayac = 1

while sayac <= 5:
    print("Bu metin durmaksizin yazdirilacaktir.")

Bu kod bloğunda “sayac” değeri hiçbir zaman artırılmadığı için döngü sonsuza kadar çalışacaktır. Bu tür hataları önlemek adına while koşulunu etkileyen değişkenlerin döngü içerisinde mutlaka güncellendiğinden emin olunmalıdır.

Döngü Kontrol İfadeleri

Döngülerin akışını standart bitiş kurallarının dışına çıkarak yönetmek için Python bazı anahtar kelimeler sunar:

  • break: Döngüyü anında sonlandırır ve döngü bloğundan sonraki ilk satıra geçer.
  • continue: Döngünün mevcut adımını o noktada keser ve sonraki yinelemeye geçer.
  • pass: Henüz kod yazılmamış bir bloğu hatasız geçmek için yer tutucu görevi görür.
for sayi in range(1, 10):
    if sayi == 4:
        continue
    if sayi == 7:
        break
    print("İşlenen sayı:", sayi)

Yukarıdaki örnekte sayı 4’e ulaştığında continue çalışır; bu nedenle 4 ekrana yazdırılmadan bir sonraki adıma atlanır. Sayı 7 olduğunda ise break devreye girer ve döngü 7, 8, 9 değerlerine hiç ulaşmadan tamamen sonlandırılır.

Döngülerde else Bloğu

Python’a özgü dikkat çekici özelliklerden biri for ve while döngülerine eklenebilen else bloğudur. Bir döngünün else bloğu, döngü bir break ifadesiyle erken kesintiye uğramadan, doğal akışında tamamlandığında bir kez çalıştırılır.

aranan_sayi = 8
sayilar = [1, 3, 5, 7, 9]

for sayi in sayilar:
    if sayi == aranan_sayi:
        print("Sayı bulundu.")
        break
else:
    print("Sayı listede bulunamadı.")

Bu kod parçasında listedeki elemanlar tek tek taranır. 8 değeri listede bulunmadığı için break hiçbir zaman tetiklenmez. Döngü tüm listeyi tükettiğinde for bloğunun altındaki else kısmı çalışır ve kullanıcıya sayının bulunamadığı bilgisi verilir.

for mu, while mı: Hangisi Seçilmeli?

Python döngüler arasında tercih yaparken genel kurallar şunlardır:

  • Kaç kez tekrar yapılacağı önceden belliyse veya elde bir veri listesi varsa for döngüsü tercih edilir.
  • İşlemin kaç kez tekrarlanacağı bilinmiyorsa, tekrar bir harici duruma veya kullanıcı girişine bağlıysa while döngüsü kullanılır.
  • for döngüleri Python’da iç yapısı gereği optimize edilmiştir ve genellikle while döngülerine kıyasla daha az hata üretir.

Özet ve Sonraki Adımlar

Bu yazıda Python’da temel akış kontrol araçlarından olan for ve while döngülerinin yapılarını, range() fonksiyonu ile aralık yönetimini, break ve continue kontrollerini inceledik. Bir sonraki aşamada, döngülerin daha gelişmiş ve tek satırlık pratik bir alternatifi olan List Comprehension konusunu araştırarak kodlarınızı daha temiz ve Pythonik hale getirebilirsiniz.

#python döngüler#python for döngüsü#python programlama#python while döngüsü#yazılım geliştirme

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.

Kommentar schreiben

Kommentare werden nach Freigabe durch den Admin veröffentlicht.