Resim

Python For Döngüsü

Python For Döngüleri: Koleksiyonlar Üzerinde İterasyon Gücü

Koleksiyonları Tek Tek İşlemek

Merhaba! Python'daki for döngüsü, programlamanın en çok kullanılan yapılarından biridir. Esas amacı, bir yinelenebilir (iterable) koleksiyonun (Liste, Tuple, Sözlük, Set, String veya range() fonksiyonunun çıktısı) her bir öğesi üzerinde sırayla işlem yapmaktır. Bu sürece İterasyon denir.

for döngüsü, özellikle koleksiyonların boyutunu veya sonlanma koşulunu önceden bildiğimiz durumlarda, while döngüsünden daha temiz ve güvenli bir çözüm sunar.

Bu yazıda, for döngüsünün yapısını, farklı veri yapılarıyla nasıl kullanıldığını ve akışı kontrol eden break, continue ifadelerini inceleyeceğiz.


1. for Döngüsünün Temel Yapısı

for döngüsü, koleksiyondaki her öğeyi sırayla geçici bir değişkene atar ve o değişkenle işlem yapmamızı sağlar.

Söz Dizimi

  1. for anahtar kelimesiyle başlar.

  2. Hemen ardından koleksiyonun her adımında değeri alacak öğe değişkeni (geçici isim) gelir.

  3. in anahtar kelimesi kullanılır.

  4. Ardından döngünün üzerinde çalışacağı koleksiyon (iterable) gelir.

  5. Satırın sonunda iki nokta üst üste (:) konulur.

  6. Tekrarlanacak kod bloğu, for satırından bir girinti (indentation) içeride olmalıdır.

  • Örnek: Liste Üzerinde İterasyon

    meyveler = ["Elma", "Armut", "Kiraz"]
    for meyve in meyveler:
        print(f"Sıradaki meyve: {meyve}")
    # Çıktı:
    # Sıradaki meyve: Elma
    # Sıradaki meyve: Armut
    # Sıradaki meyve: Kiraz
    

Kendiniz Deneyebilirsiniz:


2. range() Fonksiyonu ile Sayı Aralığı Oluşturma

Bir for döngüsünü belirli bir sayı kadar çalıştırmanın en yaygın yolu range() fonksiyonunu kullanmaktır. Bu fonksiyon, sayı dizisi (iterable) oluşturur.

  • range(stop): 0'dan başlar ve stop-1 sayısına kadar gider.

    for i in range(5):
        print(i) # Çıktı: 0, 1, 2, 3, 4
    
  • range(start, stop): start değerinden başlar ve stop-1 sayısına kadar gider.

    for i in range(2, 5):
        print(i) # Çıktı: 2, 3, 4
    
  • range(start, stop, step): start değerinden başlar, stop-1 sayısına kadar step (adım miktarı) kadar artarak ilerler.

    for i in range(0, 10, 2):
        print(i) # Çıktı: 0, 2, 4, 6, 8
    

Kendiniz Deneyebilirsiniz:


3. Farklı Veri Yapılarıyla Kullanım

for döngüsü, tüm yinelenebilir yapılarla sorunsuz çalışır:

Veri YapısıAçıklamaÖrnek Kod
StringHer karakter için döner.for harf in "Python": print(harf)
SözlükVarsayılan olarak anahtarlar üzerinde döner.for k in {'a': 1, 'b': 2}: print(k) (Çıktı: a, b)
Sözlük (.items())Hem anahtar hem de değer için döner.for k, v in dict.items(): print(f"{k}: {v}")
SetSet'in her benzersiz öğesi için döner (sırasız).for öğe in {1, 2, 3}: print(öğe)

4. Döngüyü Kontrol Etme: break ve continue

Tıpkı while döngüsünde olduğu gibi, break ve continue ifadeleri for döngüsünün akışını kontrol etmeye yarar:

  • break: Döngü hangi aşamada olursa olsun, program akışını döngünün hemen dışına taşır ve döngüyü tamamen sonlandırır.

  • continue: Döngünün mevcut adımındaki (iterasyonundaki) geri kalan kodu atlar ve döngünün bir sonraki adıma geçmesini sağlar.

  • Örnek (continue ile): Belirli bir meyveyi atlama.

    urunler = ["Elma", "Portakal", "Muz", "Kiraz"]
    for urun in urunler:
        if urun == "Portakal":
            continue # Portakalı bulursa atla, bir sonrakine geç
        print(f"Sepete eklendi: {urun}")
    # Çıktı: Sepete eklendi: Elma, Sepete eklendi: 
    #Muz, Sepete eklendi: Kiraz

Kendiniz Deneyebilirsiniz:


5. for...else Yapısı

for döngüsü de isteğe bağlı bir else bloğuna sahip olabilir. Bu else bloğu, döngü tüm öğeleri başarıyla tamamladığında (doğal yollarla sonlandığında) çalışır.

  • Kural: Eğer döngü, herhangi bir nedenle break anahtar kelimesi ile sonlandırılırsa, else bloğu çalışmaz.

  • Örnek: Listenin aranıp bulunamadığı durumu kontrol etme.

    aranan_deger = 99
    sayilar = [1, 5, 8]
    
    for sayi in sayilar:
        if sayi == aranan_deger:
            print("Değer bulundu!")
            break
    else:
        # Sadece döngü sonuna kadar break görmediyse çalışır
        print(f"Hata: {aranan_deger} listede yok.")
    # Çıktı: Hata: 99 listede yok.
    

Kendiniz Deneyebilirsiniz:


6. İç İçe For Döngüleri (Nested For Loops)

İç içe döngü, bir döngünün gövdesi (içinde çalışan kod bloğu) içine başka bir döngü yerleştirilmesi durumudur. Bu yapı, genellikle iki boyutlu koleksiyonları (matrisler, tablolar) işlemek veya her bir öğe kombinasyonu için işlem yapmak gerektiğinde kullanılır.

  • Dış Döngü: Ana koleksiyon üzerinde iterasyon yapar.

  • İç Döngü: Dış döngünün her bir adımı için, tamamen baştan sona çalışır.

Çalışma Prensibi

Basitçe, dış döngü bir adım attığında, iç döngü tüm adımlarını tamamlar ve ancak bundan sonra dış döngü bir sonraki adımına geçer.

  • Örnek: Koordinat Sistemi veya Tablo Çizimi

Aşağıdaki örnekte, dış döngü satırları (i), iç döngü ise sütunları (j) temsil eder.

# Dış döngü (Satırlar)
for i in range(1, 4): # i = 1, 2, 3
    
    # İç döngü (Sütunlar)
    for j in range(1, 3): # j = 1, 2
        
        # Dış döngünün her adımı için iç döngü tamamen çalışır
        print(f"({i}, {j}) noktası hesaplanıyor.")
        
    print("-" * 15) # Dış döngü adımı bittiğinde bir ayraç koy

# Çıktı Sırası:
# (1, 1) noktası hesaplanıyor.
# (1, 2) noktası hesaplanıyor.
# ---------------
# (2, 1) noktası hesaplanıyor.
# (2, 2) noktası hesaplanıyor.
# ---------------
# (3, 1) noktası hesaplanıyor.
# (3, 2) noktası hesaplanıyor.
# ---------------

Yaygın Kullanım Alanları

  1. Matris İşlemleri: İki boyutlu listelerin (listelerin listesi) satır ve sütunlarını işlemek.

  2. Tüm Kombinasyonları Üretme: İki farklı listenin tüm olası eşleşmelerini (kartopu çarpımı) bulmak.

  3. Desen Çizimi: Konsola yıldızlar (*) veya sayılarla şekiller (üçgen, kare) çizmek.

Dikkat Edilmesi Gerekenler

  • Performans: İç içe döngüler, özellikle koleksiyonlar çok büyükse, performansı hızla düşürebilir. Eğer dış döngü $N$ adım ve iç döngü $M$ adım atıyorsa, toplam işlem sayısı $N \times M$ olur. Bu duruma Big O notasyonunda genellikle $O(N^2)$ denir.

  • Kontrol: İç döngüden çıkmak için kullanılan break ifadesi, yalnızca bulunduğu iç döngüyü sonlandırır, dış döngüye etkisi olmaz (dış döngü normal çalışmaya devam eder).

Bu yapı, özellikle algoritmalar ve veri yapıları çalışırken temel bir beceridir!

Kendiniz Deneyebilirsiniz:


İterasyonun Anahtarı

for döngüleri, Python'da veri koleksiyonları üzerinde sistematik olarak işlem yapmanın en temel ve güvenilir yoludur. Tüm veri yapılarını (Listeler, Sözlükler vb.) etkin bir şekilde kullanabilmek için for döngüsüne hakim olmak kritik öneme sahiptir.

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?