Son Dersler
Bilgisayar ve Kodlama

Python Döngüleri: For ve While Kullanımı Konu Anlatımı

15 Nisan 2026 9 dk okuma Deniz Karay

Python döngüleri, belirli bir kod bloğunun belirli bir koşul altında veya bir veri grubu üzerinde tekrar tekrar çalıştırılmasını sağlayan programlama yapılarıdır. Yazılım geliştirmede döngüler, tekrarlayan görevleri otomatize ederek kodun daha verimli, okunabilir ve yönetilebilir olmasını sağladığı için programlamanın en temel yapı taşlarından biri olarak kabul edilir. Bir veri listesindeki binlerce öğeyi tek tek işlemekten, bir oyunun sürekli çalışır durumda kalmasını sağlamaya kadar her alanda döngülere ihtiyaç duyulur.

🎯 Bu Derste Öğrenecekleriniz
  • Python’da For döngüsünün mantığını ve koleksiyonlar üzerinde nasıl gezineceğinizi öğreneceksiniz.
  • While döngüsü kullanarak koşula bağlı tekrarlayan işlemler yapmayı kavrayacaksınız.
  • Döngü kontrol ifadeleri olan break, continue ve pass komutlarının işlevlerini öğreneceksiniz.
  • Range() fonksiyonu ile sayı dizileri oluşturmayı ve döngülerle entegre etmeyi deneyimleyeceksiniz.
  • Sonsuz döngülerin nedenlerini ve bunlardan nasıl kaçınacağınızı keşfedeceksiniz.
📌 Kısa ve Net Bilgiler
  • For Döngüsü: Genellikle eleman sayısı belli olan koleksiyonlarda (liste, demet, sözlük) kullanılır.
  • While Döngüsü: Bir koşul doğru (True) olduğu sürece çalışmaya devam eden döngü türüdür.
  • İterasyon: Bir döngünün her bir tekrarına verilen teknik isimdir.
  • Sonsuz Döngü: Bitiş koşulu asla gerçekleşmeyen ve programı kilitleyen döngülerdir.

Python’da Döngü Kavramı ve Algoritmik Önemi

Programlama dünyasında karşılaşılan problemlerin büyük bir kısmı, verilerin işlenmesi veya belirli bir işlemin defalarca tekrarlanması üzerinedir. Örneğin, bir sınıftaki 30 öğrencinin not ortalamasını hesaplamak istediğinizde, her öğrenci için aynı toplama ve bölme işlemini manuel olarak yazmak yerine bir döngü kurarsınız. Döngüler, bilgisayarların en güçlü yanını, yani sıkılmadan ve hata yapmadan milyonlarca işlemi saniyeler içinde yapabilme yeteneğini kullanmamıza olanak tanır.

Python dilinde döngüler, diğer dillerden farklı olarak daha okunabilir ve insan diline yakın bir sözdizimine (syntax) sahiptir. Bu durum, özellikle yeni başlayanlar için mantığı kavramayı kolaylaştırır. Döngülerin temel amacı DRY (Don’t Repeat Yourself – Kendini Tekrar Etme) prensibine sadık kalarak temiz kod yazmaktır.

ℹ️ Bilgi: Python’da döngüler sadece sayılarla değil; metinler, listeler ve hatta dosyalar gibi her türlü yinelenebilir (iterable) nesne ile çalışabilir.

For Döngüsü: Koleksiyonlar Üzerinde Gezinme

Python’da for döngüsü, bir dizi (list, tuple, string) veya diğer yinelenebilir nesnelerin öğeleri üzerinde sırayla işlem yapmak için kullanılır. Diğer dillerdeki for döngüsünden farklı olarak Python, doğrudan nesnenin elemanlarına odaklanır. Eğer bir listeniz varsa, for döngüsü listenin başından başlar ve son elemana kadar her bir öğeyi sırayla döngü değişkenine atar.

Basit Bir For Döngüsü Örneği
meyveler = ["Elma", "Armut", "Muz", "Çilek"]

for meyve in meyveler:
    print(f"Şu anki meyve: {meyve}")

Yukarıdaki kod örneğinde, meyve adı verilen geçici bir değişken oluşturulur. Döngü her döndüğünde, meyveler listesindeki bir sonraki eleman bu değişkene atanır ve ekrana yazdırılır. Liste bittiğinde döngü otomatik olarak sonlanır. Bu yöntem, programcıyı listenin uzunluğunu hesaplama veya bir sayaç tutma zahmetinden kurtarır.

Range() Fonksiyonu ile For Kullanımı

Belirli bir sayıda işlem yapmak istediğimizde veya belirli bir sayı aralığında dönmek istediğimizde range() fonksiyonu devreye girer. Bu fonksiyon, bize sayısal bir dizi üretir. Kullanımı oldukça esnektir ve üç farklı parametre alabilir: başlangıç, bitiş (dahil değil) ve artış miktarı.

📖 Örnek: Belirli Aralıktaki Sayıları Yazdırma

1’den 10’a kadar (10 hariç) olan çift sayıları ekrana yazdırmak için şu kodu kullanabiliriz:

for sayi in range(2, 10, 2):
    print(sayi)

Burada range(2, 10, 2) ifadesi şu anlama gelir: 2’den başla, 10’a kadar git (ama 10’u alma) ve her adımda 2 ekle. Eğer sadece tek bir sayı verirseniz (örneğin range(5)), bu 0’dan başlayıp 5’e kadar (5 hariç) olan sayıları temsil eder.

💡 İpucu: Range fonksiyonu bellekte tüm sayıları bir anda oluşturmaz, ihtiyaç duyuldukça üretir. Bu yüzden milyonlarca sayılık bir aralık tanımlasanız bile programınızın hızı düşmez.

While Döngüsü: Koşul Odaklı Tekrarlar

While döngüsü, bir mantıksal koşul True (doğru) olduğu sürece çalışmaya devam eder. Eğer işlemin kaç kez tekrarlanacağını önceden bilmiyorsanız, ancak bir şartın gerçekleşmesine bağlıysanız while döngüsü en doğru seçimdir. Örneğin, kullanıcı doğru şifreyi girene kadar şifre sormaya devam etmek klasik bir while döngüsü senaryosudur.

While Döngüsü Yapısı
sayac = 1

while sayac <= 5:
    print(f"Sayacın değeri: {sayac}")
    sayac += 1 # Sayacı artırmayı unutmayın!

While döngüsünde en kritik nokta, koşulun bir noktada False (yanlış) olmasını sağlamaktır. Eğer yukarıdaki örnekte sayac += 1 satırını yazmasaydık, sayac her zaman 1 kalacaktı ve 1 her zaman 5’ten küçük olduğu için döngü asla durmayacaktı.

⚠️ Dikkat: Bitiş koşulu iyi kurgulanmamış while döngüleri sonsuz döngüye yol açar. Bu durum bilgisayarın işlemcisini aşırı yorar ve programın donmasına neden olur.

Sonsuz Döngüden Kaçınma ve Hata Ayıklama

Sonsuz döngüler genellikle bir değişkenin güncellenmesinin unutulması veya koşulun mantıksal olarak asla yanlış olmaması nedeniyle oluşur. Eğer programınız çalışırken hiçbir çıktı vermeden takılı kalıyorsa, büyük ihtimalle bir sonsuz döngüye girmiştir. Geliştirme ortamlarında bu durumu durdurmak için genellikle Ctrl + C tuş kombinasyonu kullanılır.

Döngü Kontrol İfadeleri: Break, Continue ve Pass

Bazen döngünün normal akışını bozmamız gerekebilir. Belirli bir durumda döngüden tamamen çıkmak veya bir adımı atlayıp sonrakine geçmek isteyebiliriz. Python bunun için üç anahtar kelime sunar:

  • Break: Döngüyü o anda tamamen sonlandırır. Döngünün geri kalanına bakılmaz.
  • Continue: Döngünün o anki turunu sonlandırır ve bir sonraki tura (iterasyona) geçer.
  • Pass: Henüz içi doldurulmamış kod blokları için yer tutucu görevi görür. Hiçbir işlem yapmaz.
📖 Örnek: Break ve Continue Kullanımı
for i in range(1, 10):
    if i == 5:
        continue # 5 sayısını atla
    if i == 8:
        break    # 8'e gelince döngüden çık
    print(i)

Bu kodun çıktısı 1, 2, 3, 4, 6, 7 olacaktır. 5 atlanmış, 8 ve sonrası ise hiç yazdırılmamıştır.

Özellik For Döngüsü While Döngüsü
Kullanım Amacı Eleman dizileri üzerinde gezinmek Koşul sağlandığı sürece dönmek
Tekrar Sayısı Genellikle önceden belirlidir Koşula bağlı olarak belirsizdir
Karmaşıklık Daha basit ve okunabilir Mantıksal hatalara daha açıktır

İç İçe Döngüler (Nested Loops)

Bazı durumlarda bir döngünün içinde başka bir döngü çalıştırmanız gerekebilir. Bu durum iç içe döngüler olarak adlandırılır. Örneğin, iki boyutlu bir matrisin elemanlarına erişmek veya bir çarpım tablosu oluşturmak için iç içe döngüler kullanılır. İçteki döngü, dıştaki döngünün her bir adımı için tamamen baştan sona çalışır.

İç İçe Döngü Örneği
for i in range(1, 4):
    for j in range(1, 4):
        print(f"({i}, {j})", end=" ")
    print() # Bir alt satıra geçmek için

Bu yapı, programlama mantığını geliştirmek için harikadır ancak dikkatli kullanılmalıdır. İç içe döngülerin sayısı arttıkça (örneğin 3 veya 4 katman), programın çalışma süresi katlanarak artar. Bu durum büyük veri setlerinde performans sorunlarına yol açabilir.

Gerçek Dünya Senaryosu: Veri Filtreleme ve Arama

Döngülerin gerçek dünyadaki kullanımını anlamak için bir e-ticaret sitesindeki ürün listeleme mantığını düşünebiliriz. Elimizde binlerce ürünün olduğu bir liste olsun ve biz sadece fiyatı 100 TL’den düşük olanları listelemek isteyelim. İşte burada döngüler ve koşullu ifadeler birlikte çalışır.

Basit Bir Filtreleme Algoritması
urunler = [{"ad": "Defter", "fiyat": 50}, {"ad": "Kalem", "fiyat": 20}, {"ad": "Çanta", "fiyat": 250}]

print("Ucuz Ürünler:")
for urun in urunler:
    if urun["fiyat"] < 100:
        print(f"{urun['ad']} - {urun['fiyat']} TL")

Bu yaklaşım, modern web sitelerinin ve mobil uygulamaların arka planında sürekli olarak çalışmaktadır. Veritabanından gelen veriler döngüler aracılığıyla ekrana yansıtılır.

Öğrendiklerinizi Pekiştirin

Python döngülerini tam olarak kavramak için sadece okumak yeterli değildir; kendi kodlarınızı yazmanız ve hatalarla karşılaşmanız gerekir. Aşağıdaki soruları çözerek kendinizi test edebilirsiniz. Unutmayın, her hata yeni bir öğrenme fırsatıdır.

✏️ Kendinizi Test Edin
  1. Kullanıcıdan bir sayı alan ve 1’den o sayıya kadar olan tüm sayıların toplamını hesaplayan bir program yazınız.
  2. While döngüsü kullanarak kullanıcıya “Çıkmak için ‘q’ tuşuna basın” uyarısı veren bir sistem tasarlayınız.
  3. Bir listenin içindeki sadece çift sayıları yeni bir listeye kopyalayan bir for döngüsü oluşturunuz.
  4. Break komutu kullanılmadan bir sonsuz döngüyü nasıl durdurabilirsiniz?
  5. Çarpım tablosunu 1’den 10’lara kadar ekrana basan iç içe bir döngü yapısı kurunuz.
📝 Konu Özeti
  • For döngüleri, belirli bir koleksiyonun (liste, string vb.) her elemanı için işlem yapar.
  • While döngüleri, bir mantıksal koşul doğru olduğu sürece çalışır; koşul bozulunca durur.
  • range() fonksiyonu, döngülerde sayı dizileri oluşturmak için kullanılan en temel araçtır.
  • Break döngüden tamamen çıkar, continue ise sadece o anki adımı atlar.
  • Sonsuz döngü hatasından kaçınmak için döngü değişkeninin güncellendiğinden emin olunmalıdır.

DersMerkezi.net.tr’nin yazarı, eğitim alanında yıllara dayanan deneyime sahip bir uzmandır ve öğrencilerin öğrenme sürecini desteklemeyi hedefler. Matematik, fen bilimleri, tarih, dil ve edebiyat başta olmak üzere birçok ders alanında içerik üretir ve konuları sade, anlaşılır ve adım adım rehberler halinde sunar.

Yorum Yap