Döngülerin Uygulanması
Önce 1-10 arasındaki sayıları yazdırarak başlayalım. Python'daki for döngüleri sıfırdan indekslendiği için her yinelemede bir eklemeniz gerekir; aksi halde çıktı 0-9 olur.
Bir kelimenin, örneğin Datacamp ifadesinin karakterleri üzerinde for döngüsüyle yineleme yapalım ve yalnızca a harfini yazdıralım.
Diyelim ki bir öğe listesi tanımlamak ve bu öğeler üzerinde tek tek yineleme yapmak istiyorsunuz.
Peki ya listenin uzunluğunu bulup sonra üzerinde yineleme yapmak isterseniz? Bunun için yerleşik len fonksiyonunu kullanır ve ardından dönen uzunluk çıktısına range uygularsınız.
Unutmayın, range her zaman tamsayı bir değer bekler.
Harika! Peki len fonksiyonunu neden kullanmanız gerekiyor; doğrudan for i in numbers kullanamaz mısınız? Cevap basit. Diyelim ki mevcut bir listenin öğesini değiştirmek gibi dizinin indeksleriyle çalışmak veya onları değiştirmek istiyorsunuz; o zaman range(len(sequence)) gerekir.
Güzel, değil mi? if koşuluna göre listedeki öğeleri değiştirebildiniz.
Şimdi 1 - 20 arasındaki tek sayıları nasıl yazdırabileceğinize bakalım. Bunu yapmak için range fonksiyonunda üç şeyi tanımlamanız gerekir: Başlangıç noktası, bitiş noktası ve döngünün 1 - 20 arasındaki sayılar üzerinde artacağı artış değeri (veya adımlar).
İç İçe For döngüsü
Bir dataframe'in satır ve sütunlarında yineleme yapmak için For döngüsü
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris.head()
| sepal_length | sepal_width | petal_length | petal_width | species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
len(iris)
# 150
for i in range(len(iris)):
Class = iris.iloc[i,4]
if Class == 'versicolor' and i < 70:
print (Class)
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
Şimdi de sepal_length,sepal_width, petal_length ve petal_width sütunlarının her satırına iki ekleyelim.
columns = ['sepal_length','sepal_width','petal_length','petal_width']
for indices, row in iris.iterrows():
for column in columns:
iris.at[indices,column] = row[column] + 2
iris.head()
| sepal_length | sepal_width | petal_length | petal_width | species | |
|---|---|---|---|---|---|
| 0 | 7.1 | 5.5 | 3.4 | 2.2 | setosa |
| 1 | 6.9 | 5.0 | 3.4 | 2.2 | setosa |
| 2 | 6.7 | 5.2 | 3.3 | 2.2 | setosa |
| 3 | 6.6 | 5.1 | 3.5 | 2.2 | setosa |
| 4 | 7.0 | 5.6 | 3.4 | 2.2 | setosa |
Lambda fonksiyonu ile bir dizi üzerinde yineleme
Python'un lambda fonksiyonu, temel for döngüsüne kıyasla hızlı ve güçlüdür. Özellikle DataFrame'lerle çalışırken yaygın olarak kullanılır. Lambda fonksiyonu yardımıyla verinizi çok az kodla işleyebilirsiniz. Ancak, bazen anlaması zor olabilir.
Şimdi bunu bir lambda ve map fonksiyonuyla deneyelim.
Map, örneğin bir lambda fonksiyonunu ve bir x dizisini alır ve ardından yeni bir dizi döndürür.
Bir üreteç (generator) fonksiyonu döndürür ve üreteçten çıktı almak için; çıktıyı list'e argüman olarak geçirirsiniz.
Şimdi bir adım geri çekilip hem for döngülü yolu hem de lambda/map() kombinasyonunu karşılaştıralım. Aralarındaki farkın map, lambda eklenmesi ve "for" ile "in"in kaldırılması olduğunu fark edeceksiniz. Ayrıca tek satırda kodlayabildiniz.
Sonuç
Bu temel Python For döngüsü eğitimini tamamladığınız için tebrikler.
For döngüleri her programlama dilinin bel kemiğidir ve konu Python olunca For döngülerini yazmak hiç de zor değildir; İngilizce bir cümle yazar gibi sezgisel hissettirir.
Python'da for döngüleri hakkında daha fazla bilgi edinmek isterseniz, DataCamp'in Python Data Science Toolbox (Bölüm 2) kursunu alın.
Bu eğitimle ilgili tüm sorularınızı aşağıdaki yorum bölümünde sormaktan çekinmeyin.

Giriş
Diğer programlama dillerinde olduğu gibi, Python'daki
fordöngüleri de biraz farklıdır; birforanahtar sözcüğü gibi olmaktan çok bir yineleyici (iterator) gibi çalışırlar. Python'daCbenzeri sözdizimi olanfor(i=0; i<n; i++)yoktur; bunun yerinefor in nkullanırsınız.Bir
list,string,tuple,set,array,data framegibi diziler üzerinde yineleme yapmak için kullanılabilirler.Bir öğe listesi verildiğinde,
fordöngüsü o listedeki her bir öğe üzerinde yineleme yapmak ve bunu yürütmek için kullanılabilir.Bir dizi öğe üzerinde yineleme yapmak için For döngüleri
rangefonksiyonunu kullanır.rangefonksiyonu, dizinin uzunluğuna bağlı olarak belirtilen aralıktaki sayılardan oluşan yeni bir liste döndürür.Bir dizi üzerinde yineleme yaparken, yineleme için dizideki öğelerin indeksini de kullanabilirsiniz; ancak bunun anahtarı, önce listenin uzunluğunu hesaplamak ve ardından bu uzunluğun aralığında yineleme yapmaktır.
Python'daki
fordöngüleri sıfırdan indekslenir.Hızlıca işin uygulama kısmına geçelim.
Ayrıca hızlı bir eğitim için bu videoyu da izleyebilirsiniz!