Kurs
Python programlama alanında, döngülere hâkim olmak çok önemlidir. Bu eğitim, tekrarlayan görevleri basitleştiren ve Python'da temel bir yapı olan Python for i in range döngüsüne ışık tutuyor. Sözdizimini, esnekliğini ve pratik kullanım alanlarını anlamak için bir yolculuğa çıkacağız.
Python'da for Döngülerinin Özü
Python'da bir for döngüsü, bir dizinin (liste, demet, sözlük veya string gibi) üzerinde yinelenmek için kullanılan bir kontrol yapısıdır. Python'un for döngüsünün güzelliği, bir dizinin öğeleri üzerinde doğrudan, açık ve öz bir şekilde yineleme yapabilmesinde yatar.
for Döngüsünün Sözdizimi
for item in sequence:
# perform actions
Burada item, dizideki her bir öğeyi temsil eder ve döngü her öğe için kod bloğunu çalıştırır.
Python'un range() Fonksiyonuna Derinlemesine Bakış
Python'daki range() fonksiyonu, sayılardan oluşan bir dizi üretmek için kilit öneme sahiptir ve döngülerde artan kontrol ve esneklik sunar.
range()'in Esnekliği
Tek Argüman Kullanımı
- 0'dan n-1'e kadar sayılar üretir.
- Örnek: range(5) 0, 1, 2, 3, 4 üretir.
Çift Argüman Kullanımı
- Dizinin başlangıcını ve bitişini belirtir.
- Örnek: range(10, 15) 10, 11, 12, 13, 14 sonucunu verir.
Üç Argüman Kullanımı
- Artış adımını belirtme olanağı ekler.
- Örnek: range(1, 20, 2) 1, 3, 5, ..., 19 döndürür.
Pratik Uygulamalar ve Örnekler
Koleksiyonlar Üzerinde Döngü
1. String'ler: Her karakter üzerinde yineleme.
for char in "Hello":
print(char)
H
e
l
l
o
Bu döngü, "Hello" string'indeki her bir karakter üzerinde yineler. for döngüsü sırayla her karakteri ('H', 'e', 'l', 'l', 'o') char değişkenine atar ve yazdırır. Dolayısıyla, çıktı "Hello" sözcüğünün her karakterinin yeni satırda görüntülenmesi olacaktır.
2. Listeler: Liste öğeleri arasında dolaşma.
for num in [1, 2, 3]:
print(num)
1
2
3
Burada döngü [1, 2, 3] listesi üzerinde ilerler. Her yinelemede num, listede bir sonraki öğenin değerini alır; önce 1, sonra 2 ve son olarak 3. Her sayı yazdırılır ve böylece 1, 2 ve 3 sayıları ayrı satırlarda görünür.
3. Sözlükler: Anahtarlara ve değerlere erişim.
for key, value in {'a': 1, 'b': 2}.items():
print(key, value)
a 1
b 2
Bu döngü, iki anahtar-değer çiftinden ('a': 1 ve 'b': 2) oluşan bir sözlük üzerinde yineler. .items() yöntemi, bir sözlüğün anahtar-değer demet çiftlerinin bir listesini gösteren bir görünüm nesnesi döndürür. Her yinelemede key ve value, sözlükteki bir sonraki öğenin anahtarı ve değeri olarak atanır ve ardından yazdırılır.
Döngü Kontrol Mekanizmaları
1. break İfadesi: Döngüyü erkenden sonlandırır.
for i in range(10):
if i == 5:
break
Bu kod, range(10) tarafından üretilen 0'dan 9'a kadar yineler. i'nin değeri 5'e ulaştığında if koşulu sağlanır ve break ifadesi tetiklenir. Bu, 9'a kadar tüm değerler üzerinde yineleme tamamlanmadan döngüyü durdurur.
2. continue İfadesi: Geçerli yinelemeyi atlar.
for i in range(10):
if i % 2 == 0:
continue
print(i)
1
3
5
7
9
Bu döngü de 0'dan 9'a kadar yineler. Ancak if ifadesi i'nin çift sayı olup olmadığını kontrol eder (i % 2 == 0 işlemi, i'nin 2'ye bölümünden kalanın 0 olup olmadığını denetler). Eğer çift ise, continue ifadesi çalışır ve o yineleme için döngü gövdesinin geri kalanı atlanır. Bu nedenle yalnızca tek sayılar yazdırılır
for Döngüleriyle İleri Teknikler
1. İç İçe Döngüler
Bu, bir döngünün içine başka bir döngünün yerleştirildiği iç içe döngülere bir örnektir. Dış döngü (for i in range(3)) 0, 1 ve 2 sayıları üzerinde yineler. Dış döngünün her yinelemesinde iç döngü (for j in range(3)) de 0, 1 ve 2 sayıları üzerinde yineler. print(i, j) ifadesi i ve j'nin her kombinasyonu için çalıştırılır.
for i in range(3):
for j in range(3):
print(i, j)
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
Çıktı, 0 ile 2 aralığındaki tüm i ve j kombinasyonlarını temsil eden bir dizi çift olacaktır.
2. Enumerate ile Döngü
enumerate fonksiyonu, bir yinelenebilir üzerine sayaç ekler ve bunu bir enumerate nesnesi olarak döndürür. Bu nesne doğrudan for döngülerinde kullanılabilir. Bu örnekte, for döngüsü ['a', 'b', 'c'] listesi üzerinde enumerate ile kullanılmıştır.
for index, value in enumerate(['a', 'b', 'c']):
print(index, value)
0 a
1 b
2 c
enumerate fonksiyonu, varsayılan olarak 0'dan başlayarak listedeki her öğeye bir indeks ekler. Döngü daha sonra bu enumerate nesnesi üzerinde yineler ve her öğeyi index ve value değişkenlerine açar. index, her öğenin indeksi; value ise listedeki karşılık gelen öğedir. Dolayısıyla çıktı, indeks ve değerin birlikte yer aldığı satırlardan oluşacaktır.
Bu örnekler, iç içe döngülerin karmaşık yinelemeleri gerçekleştirmek için nasıl kullanılabileceğini ve enumerate'in bir döngüde öğe indeksini kolayca takip etmek için nasıl işe yaradığını gösterir.
Veri Biliminde for Döngüleri Nasıl Kullanılır
for döngüsü, Python programlama ve veri analizinde kritik bir kavramdır. Listeler ve diziler üzerinde yinelemek gibi çok geniş kullanım alanına sahiptir ve bu da veri işleme görevlerini basitleştirir. Özellikle iç içe döngüler olmak üzere for döngülerini, makine öğrenimi algoritmaları oluşturmanın temel adımı olan çok boyutlu veri yapılarının verimli yönetimi için sıkça kullanırım. Ayrıca veri bilimciler, ortalama hesaplama gibi veriyi toplulaştırma işlemleri dahil karmaşık veri işleme için sık sık for döngülerini koşullu mantıkla birleştirir.
Bununla birlikte, for döngüleri büyük veri kümeleri ve derin öğrenme algoritmalarıyla çalışırken en iyi seçenek olmayabilir. Bu nedenle NumPy, pandas ve PyTorch gibi, vektörleştirilmiş işlemler için optimize edilmiş ve büyük ölçekli veri işleme için daha verimli olan kütüphanelere sahibiz.
Sonuç: Döngü Verimliliğini Benimsemek
Sonuç olarak, Python'un for döngüsü programcılar için vazgeçilmez bir araçtır. range() fonksiyonunun gücüyle birleşen sadeliği, onu veri bilimi ve genel programlamadaki çeşitli yinelemeli görevler için ideal kılar. Bu kavramları uyguladıkça Python kodunuzun daha verimli ve ifade gücü yüksek hale geldiğini göreceksiniz.
Tam eğitimimizde While Döngüleri hakkında daha fazla okuyabilir ve bunu ile diğer kavramları Orta Düzey Python kursumuzda keşfedebilirsiniz.
Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

