Python for Döngüsü
Python’daki for döngüsü, bir yineleme yapısıdır.
Eğer bir liste gibi sıralı bir nesnen varsa, for döngüsünü kullanarak bu listenin içindeki öğeler üzerinde sırayla işlem yapabilirsin.
for döngüsünün çalışma mantığı, birçok diğer programlama dilinde gördüğün yapıya oldukça benzerdir.
Bu yazıda Python’daki for döngüsünü ayrıntılı bir şekilde inceleyeceğiz.
Listeler, demetler (tuples) ve diğer veri yapıları üzerinde nasıl yineleme yapılacağını öğreneceğiz.
Ayrıca, döngünün akışını kontrol etmek için kullanılan break ve continue ifadelerini de detaylıca ele alacağız.
For Döngüsü Ne Zaman Kullanılır?
Belirli bir kod bloğunu sabit bir sayıda tekrarlaman gerektiğinde for döngüsü kullanılır.
Eğer döngünün kaç kez çalışacağını bilmiyorsan, bu durumda while döngüsü kullanmak daha uygundur.
Python’da For Döngüsü Sözdizimi (Syntax)
Python’daki for döngüsünün temel yazım biçimi (syntax) aşağıdaki gibidir:
for degisken in koleksiyon:
# Her yinelemede çalışacak kod bloğu
Python For Döngüsü Sözdiziminin Detayları
Bir for döngüsünün yapısını adım adım inceleyelim:
foranahtar kelimesi → Döngünün başladığını belirtir.- Yineleyici değişken → Dizideki her bir öğeyi sırayla temsil eder ve döngü içinde kullanılabilir.
inanahtar kelimesi → Python’a, yineleyici değişkenin dizideki (veya iterable yapıdaki) öğeler üzerinde dolaşmasını söyler.- Dizi değişkeni → Bu, bir liste, tuple, string ya da herhangi bir iterable olabilir.
- Döngü içindeki ifadeler → Burada yineleyici değişkenle işlem yapabilir, fonksiyon çağırabilir veya hesaplamalar gerçekleştirebilirsin.
For Döngüsü ile Bir String’in Harflerini Yazdırmak
Python’da string, karakterlerden oluşan bir dizidir.
Eğer bir metindeki harfleri tek tek dolaşman gerekiyorsa, bunu for döngüsüyle kolayca yapabilirsin.
Aşağıdaki örnek nasıl çalıştığını gösterir:
metin = "Python"
for harf in metin:
print(harf)
Output
P
y
t
h
o
n
Bu döngünün çalışmasının nedeni, Python’un bir string’i tek bir bütün olarak değil, karakterlerden oluşan bir dizi olarak görmesidir.
Yani Python, "Python" kelimesini "P", "y", "t", "h", "o", "n" karakterlerinden oluşan bir liste gibi ele alır.
Bu sayede for döngüsüyle her bir karakteri tek tek işleyebiliriz.
Python Liste veya Tuple Üzerinde For Döngüsü Kullanmak
Listeler ve tuple’lar, Python’da yineleme yapılabilen (iterable) veri yapılarıdır.
Bu yapıların içindeki öğeleri tek tek dolaşmak için for döngüsünü kullanabiliriz.
meyveler = ["elma", "muz", "çilek", "kivi"]
for meyve in meyveler:
print(meyve)
Output
elma
muz
çilek
kivi
Şimdi bir adım ileri gidelim ve tuple içindeki elemanlar üzerinde nasıl döngü kurabileceğimize bakalım.
sayilar = (5, 10, 15, 20, 25)
toplam = 0
for sayi in sayilar:
toplam += sayi
print(f"Sayıların toplamı: {toplam}")
Output
0 + 5 = 5
5 + 10 = 15
15 + 15 = 30
30 + 20 = 50
50 + 25 = 75
İç İçe (Nested) For Döngüleri
Bir for döngüsünün içinde başka bir for döngüsü varsa buna iç içe for döngüsü (nested for loop) denir.
Bu yapı, özellikle çok katmanlı verilerle (örneğin listelerin içindeki listeler veya kelimelerin harfleri) çalışırken oldukça kullanışlıdır.
Örneğin daha önceki örnekte for döngüsü, listedeki kelimeleri tek tek yazdırıyordu.
Peki ya biz her kelimenin içindeki harfleri de tek tek yazdırmak istersek?
İşte tam bu durumda nested for loop devreye girer.
İlk döngü (ebeveyn döngü) → kelimeleri tek tek dolaşır.
İkinci döngü (iç döngü) → her kelimenin harflerini tek tek dolaşır.
Örnek:
kelimeler = ["Python", "Kod", "Döngü"]
for kelime in kelimeler: # dış döngü: kelimeleri geziyor
print(f"Kelime: {kelime}")
for harf in kelime: # iç döngü: her kelimedeki harfleri geziyor
print(f" Harf: {harf}")
Kelime: Python
Harf: P
Harf: y
Harf: t
Harf: h
Harf: o
Harf: n
Kelime: Kod
Harf: K
Harf: o
Harf: d
Kelime: Döngü
Harf: D
Harf: ö
Harf: n
Harf: g
Harf: ü
Yapısal olarak iç içe for döngüleri, iç içe if ifadelerine oldukça benzer.
Nasıl ki bir if bloğunun içinde başka bir if bloğu tanımlayabiliyorsan,
aynı şekilde bir for döngüsünün içinde de başka bir for döngüsü tanımlayabilirsin.
Bu yapı sayesinde dış döngü bir grubu (örneğin kelimeleri),
iç döngü ise o grubun alt öğelerini (örneğin harfleri) kontrol eder.
Yani mantık aynı, sadece kullanım amacı farklıdır.
range() Fonksiyonu ile Python For Döngüsü
Python’daki range() fonksiyonu, yerleşik (built-in) fonksiyonlardan biridir.
Bir for döngüsünün belirli sayıda çalışmasını istediğinde ya da belirli bir aralıkta sayılar üretmek gerektiğinde kullanılır.
Yani range() fonksiyonu, döngünün kaç kere döneceğini veya hangi sayılar üzerinde çalışacağını kontrol etmeni sağlar.
range() fonksiyonunu kullanırken 1 ila 3 arasında tamsayı argüman geçebilirsin:
1- start → Dizinin hangi değerden başlayacağını belirtir.
Eğer belirtilmezse varsayılan olarak 0’dan başlar.
2- stop → Dizinin hangi değerde biteceğini belirtir (bu değer dahil edilmez).
Yani range(5) ifadesi 0, 1, 2, 3, 4 üretir — 5 hariç.
3-step → Her adımda sayının ne kadar artacağını veya azalacağını belirler.
Eğer belirtilmezse varsayılan olarak 1’dir.
Negatif bir değer verilirse, sayılar azalarak ilerler.
Aşağıdaki örnekte, 1, 2 ve 3 sayılarını ekrana yazdırmak istiyoruz.
for i in range(1, 4):
print("Ekrandaki Sayı:", i)
Output
Ekrandaki Sayı: 1
Ekrandaki Sayı: 2
Ekrandaki Sayı: 3
range() fonksiyonu, start ve stop parametrelerine ek olarak bir de step parametresi alır.
Bu parametre, her döngü adımında kaç sayı atlanacağını belirtir.
Yani her adımda önceki sayıya step değeri eklenir.
for i in range(0, 10, 3):
print(i)
Output
0
3
6
9
Ayrıca step değerini negatif yaparak döngüyü geri doğru (tersten) çalıştırabiliriz.
Bu durumda start değeri büyük, stop değeri ise küçük olmalıdır.
for i in range(10, 0, -2):
print(i)
Burada:
- 10 → başlangıç değeri (
start) - 0 → bitiş değeri (
stop, dahil edilmez) - -2 → adım değeri (
step)
Yani döngü 100’den başlayıp her seferinde 2 azalarak 0’a kadar gider.
Output
10
8
6
4
2
Python’da programlama yaparken for döngüleri genellikle yineleme (iteration) işlemleri için
range() fonksiyonunu kullanır.
range() sayesinde belirli bir aralıktaki sayılar üzerinde kolayca döngü kurabilir,
bu sayıları liste, tuple veya string gibi yapılarda işlem yapmak için kullanabilirsin.
Kısacası, range() — Python’da for döngülerinin en sık kullanılan “yineleme motorudur” diyebiliriz.
For Döngüsünde break İfadesi
break ifadesi, bir for döngüsünü erken sonlandırmak için kullanılır.
Belirli bir koşul sağlandığında döngüden çıkmak istiyorsan, break tam olarak bunun içindir.
Diyelim ki elimizde bir sayı listesi var ve bir sayının listede olup olmadığını kontrol etmek istiyoruz.
Eğer aradığımız sayı bulunursa, döngüyü devam ettirmeye gerek kalmaz — break ile hemen çıkabiliriz.
Bu durumda for döngüsünü, if-else koşulu ile birlikte kullanabiliriz.
sayilar = [3, 7, 12, 18, 25, 30]
aranan = 18
for sayi in sayilar:
if sayi == aranan:
print(f"{aranan} listede bulundu.")
break
else:
print(f"{aranan} listede bulunamadı.")
Output
18 listede bulundu.
For Döngüsünde continue İfadesi
continue ifadesi, for döngüsünün belirli bir koşulda gövde kısmını atlamasını sağlar.
Yani koşul sağlandığında döngü o turu bitirir ve bir sonraki tura geçer.
Örneğin elimizde bir sayı listesi olsun ve biz sadece pozitif sayıların toplamını almak isteyelim.
Negatif sayılar geldiğinde onları atlamak için continue kullanabiliriz.
sayilar = [10, -3, 7, -1, 5]
toplam = 0
for sayi in sayilar:
if sayi < 0:
continue # negatifleri atla
toplam += sayi
print(f"Pozitif sayıların toplamı: {toplam}")
Output
Pozitif sayıların toplamı: 22
Python For Döngüsü ile else Bloğu Kullanmak
Python’da for döngüsünün sonunda bir else bloğu kullanılabilir.
Bu else bloğu, yalnızca döngü break ifadesiyle sonlandırılmadığında çalışır.
Yani döngü normal şekilde tamamlanırsa else bloğu çalışır,
ama döngü break ile erken biterse else kısmı atlanır.
Örneğin, elimizde bir fonksiyon olsun — bu fonksiyon sadece tüm sayılar çiftse sayıların toplamını yazdırsın.
Eğer arada tek sayı varsa, break ile döngüyü sonlandıralım ve toplam yazdırılmasın.
def cift_sayilari_topla(sayilar):
toplam = 0
for sayi in sayilar:
if sayi % 2 != 0:
print(f"Tek sayı bulundu: {sayi} ❌")
break
toplam += sayi
else:
print(f"Tüm sayılar çift ✅ Toplam: {toplam}")
Test edelim
cift_sayilari_topla(2, 4, 6, 8) # tümü çift
Tüm sayılar çift ✅ Toplam: 20
cift_sayilari_topla(2, 5, 8, 10) # arada tek var
Tek sayı bulundu: 5 ❌
Sıralı Veri Tipleri ile For Döngüsü Kullanımı
for döngüsü yalnızca range() ile değil, aynı zamanda liste, tuple, string gibi
sıralı (sequential) veri tipleri üzerinde de çalışabilir.
Bu tür veri yapıları, for döngüsüne doğrudan parametre olarak verilebilir.
Yani bir liste tanımlayıp onun elemanları üzerinde tek tek işlem yapabiliriz.
renkler = ["kırmızı", "yeşil", "mavi", "sarı"]
for renk in renkler:
print(f"Renk: {renk}")
Bu örnekte, listedeki her bir öğeyi ekrana yazdırıyoruz.
Değişkenin adını renk olarak kullandık ama aslında geçerli herhangi bir değişken adı da kullanılabilirdi.
Output
Renk: kırmızı
Renk: yeşil
Renk: mavi
Renk: sarı
Yukarıdaki çıktıdan da gördüğün gibi, for döngüsü listeyi baştan sona dolaştı
ve listedeki her bir öğeyi ayrı bir satıra yazdırdı.
Listeler ve diğer sıralı veri tipleri — örneğin string ve tuple —
for döngüleriyle sıkça kullanılır çünkü bu veri tipleri iterable yani üzerinde döngü kurulabilir yapılardır.
kuslar = ['kartal', 'şahin', 'serçe', 'güvercin', 'doğan', 'atmaca']
for i in range(len(kuslar)):
kuslar.append('kuş')
print(kuslar)
Output
['kartal', 'şahin', 'serçe', 'güvercin', 'doğan', 'atmaca', 'kuş', 'kuş', 'kuş', 'kuş', 'kuş', 'kuş']
Burada, kuslar listesinin uzunluğu kadar her döngüde 'kuş' ekledik.
Yani listedeki her bir eleman için bir 'kuş' değeri daha listeye eklendi.
Aynı mantığı kullanarak bir listeyi sıfırdan da oluşturabilirsin.
Mesela bir döngüyle 1’den 5’e kadar sayıları yeni bir listeye ekleyelim.
sayilar = []
for i in range(1, 6):
sayilar.append(i)
print(sayilar)
Output
[1, 2, 3, 4, 5]
Bir sözlük üzerinde döngü kurarken, anahtar : değer (key : value) yapısını akılda tutmak çok önemlidir.
Bu sayede sözlükteki doğru öğeye eriştiğinden emin olursun.
Aşağıda hem anahtar hem de değeri çağıran bir örnek yer alıyor:
balik_bilgisi = {'isim': 'Maviş', 'tür': 'köpekbalığı', 'renk': 'mavi', 'konum': 'okyanus'}
for anahtar in balik_bilgisi:
print(anahtar + ': ' + balik_bilgisi[anahtar])
Output
isim : Maviş
tür : köpekbalığı
renk : mavi
konum : okyanus
Sözlüklerle (dictionary) for döngüsü kullanıldığında, döngüdeki değişken sözlüğün anahtarlarını temsil eder.
Yani sozluk_degiskeni[dongu_degiskeni] ifadesi de o anahtara karşılık gelen değeri döndürür.
Yukarıdaki örnekte, döngüde kullanılan anahtar değişkeni sözlükteki anahtarları temsil ederken,
balik_bilgisi[anahtar] ifadesi de o anahtara ait değeri göstermektedir.
Genellikle döngüler, sıralı veri tiplerini (listeler, diziler vb.) dolaşmak ve üzerinde işlem yapmak için kullanılır.
Python’daki for döngüsü, diğer programlama dillerindeki döngülere oldukça benzer.
Döngü akışını değiştirmek için break ve continue ifadelerini kullanabiliriz.
Ancak Python’da, diğer dillerden farklı olarak for döngüsünde isteğe bağlı bir else bloğu da bulunabilir.
Umarım bu rehber, sana döngüler hakkında birkaç yeni fikir kazandırmıştır.
Aklına takılan bir şey olursa, yorumlarda paylaşmaktan çekinme.
Buradan devam etmek istersen, while döngüsü ve break, continue, pass ifadeleri hakkında hazırlanmış diğer derslere de göz atabilirsin.