- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
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.
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.
for anahtar kelimesiyle başlar.
Hemen ardından koleksiyonun her adımında değeri alacak öğe değişkeni (geçici isim) gelir.
in anahtar kelimesi kullanılır.
Ardından döngünün üzerinde çalışacağı koleksiyon (iterable) gelir.
Satırın sonunda iki nokta üst üste (:) konulur.
Tekrarlanacak kod bloğu, for satırından bir girinti (indentation) içeride olmalıdır.
Örnek: Liste Üzerinde İterasyon
for meyve in meyveler:
print(f"Sıradaki meyve: {meyve}")
# Çıktı:
# Sıradaki meyve: Elma
# Sıradaki meyve: Armut
# Sıradaki meyve: Kiraz
range() Fonksiyonu ile Sayı Aralığı OluşturmaBir 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.
print(i) # Çıktı: 0, 1, 2, 3, 4
range(start, stop): start değerinden başlar ve stop-1 sayısına kadar gider.
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.
print(i) # Çıktı: 0, 2, 4, 6, 8
for döngüsü, tüm yinelenebilir yapılarla sorunsuz çalışır:
| Veri Yapısı | Açıklama | Örnek Kod |
| String | Her karakter için döner. | for harf in "Python": print(harf) |
| Sözlük | Varsayı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}") |
| Set | Set'in her benzersiz öğesi için döner (sırasız). | for öğe in {1, 2, 3}: print(öğe) |
break ve continueTı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.
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: Kirazfor...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.
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.
İç 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.
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.
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.
# ---------------
Matris İşlemleri: İki boyutlu listelerin (listelerin listesi) satır ve sütunlarını işlemek.
Tüm Kombinasyonları Üretme: İki farklı listenin tüm olası eşleşmelerini (kartopu çarpımı) bulmak.
Desen Çizimi: Konsola yıldızlar (*) veya sayılarla şekiller (üçgen, kare) çizmek.
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!
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.
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.
Yorumlar
Yorum Gönder