Merhaba Python For Döngüsü yazısını okuyan ziyaretçi! :)

Bir önceki yazımda, if'lere kadar anlattığım konular için bir test paylaşmıştım. Testi çözmediysen buraya alalım seni :) Kendini test et, eksiklerini gör.

Listeler konusuna değinmiştik hatırlarsan, bu konuda eksiğin varsa mutlaka tekrar göz at. Zira bu yazımızda listeleri sıkça kullanacağız.

Bu yazı çok önemli arkadaşım. Hani veri tipi falan neyse de döngüler neredeyse bir programcının ışın kılıcıdır. Hemen hemen her programda, her script'te döngüler en az bir kez kullanılır. Dil öğrenenlerin anlamakta sıkıntı çektiği konulardandır döngüler. Lütfen anlamadığın yeri sor.


Döngü(Loops) nedir?

Loops, yani döngüler; işlemlerin tekrarlanmasına ihtiyaç duyulduğunda kullanılır.

Örneğin Python ile bir dosya açtık. Her satırı okuyup satır satır ekrana yazmasını istiyoruz. Açtığımız dosyanın kaç satır olduğunu bilmediğimiz için her seferinde farklı satırlar için kod yazamayız değil mi?

Örnekler üzerinde daha iyi anlayacaksın. Tanımlara takılma mantığını anlamaya çalış.

Python'da iki çeşit döngü vardır;
  • for
  • while
Bu yazımda for döngüsünden bahsedeceğim; sonraki yazımda ise while döngüsünden.


For Loops (For döngüsü)

Diyelim ki, 50 elemana sahip bir listemiz var. Bu 50 elemana sahip listeyi en kısa yoldan alt alta nasıl yazdırırsın? Listenin içindeki 50 elemanı print() ile tek tek uğraşmak zorunda mısın? Hayır değilsin. Bir örnek üzerinde anlamanı sağlayayım.

liste = ['Google', 'Apple', 'Samsung', 'IBM', 'Microsoft', 'Amazon']

for i in liste:
   print (i)

İlk satırda liste adında bir liste oluşturduk. Listemizin 6 elemanı bulunmakta. 50 elemana sahip olmayacaktı ya, 50 elemanlı olacak sanmadın herhalde :)

for satırını detaylı bir şekilde anlatayım sana. for i in liste satırı şunu yapacak:
Liste içindeki her bir elemanı sırayla i değişkenine atayacak ve for döngüsü bitene kadar her bir eleman i değişkeninde kalacak. Diğer bir değişle, ilk önce Google elemanı i olarak for içinde işlem yapacak, sonra Apple.. Sonra Samsung.. Bu şekilde listedeki eleman bitene kadar sırayla for içinde dönecekler.

for altında bir girinti olduğunu görmüş olman gerekir üçüncü satırda. for, if gibi girinti ister.
Yukarıdaki kodu çalıştırdığımızda liste içindeki elemanlar alt alta sırayla yazdırılacak.


Şimdi bir başka örnek üzerinde konuya değinelim.

meyveler = ['Havuç', 'Elma', 'Karpuz', 'Kivi', 'Nar', 'Portakal']
pahali = []

for i in meyveler:
   pahali.append(i)

for meyve in pahali:
   print ('Şu meyvedir:', meyve)
Bu kod anlamanızı kolaylaştıracak diye düşünüyorum.
İlk iki satırda iki liste oluşturdum. Biri meyveler ve içinde 6 eleman var. Diğeri ise pahali listesi ve boş bir liste.

Şimdi birinci for satırına bakalım. meyveler listesindeki her bir elemanı sırayla i olarak alacak, alt satırında ise i değişkeni pahali listesine ekleniyor.

Yedinci satırda ise pahali listesine eklenen elemanlar, meyve değişkenine dönüştürülüyor sırayla ve print() ile yazdırılıyor.


Şimdi seninle iki değişken arasındaki farkları gösteren bir kod yazalım.

degisken1 = "AnarşistYazılımcıHackerAdanaDevrimAnarşiÖzgürlükİsyan"
degisken2 = "anarsistYazilimcihackeradanaDEVrIManarsiozgurlukisyan"

farkli = ""

for s in degisken2:
    if not s in degisken1:
        if not s in farkli:
            farkli += s

print (farkli)
degisken1, degisken2 ve farkli adından 3 değişken oluşturmuşum.

for döngüsünde degisken2'deki her bir karakter s olarak tanıtılarak işlem devam ediyor.
Alt satırda ise if not s in degişken1 denmiş. Bu eğer degisken1 içinde s değişkeni yoksa, anlamına geliyor. if-else yazımda bunlardan bahsetmiştim.

Diğer if ise farkli değişkeninin içinde s yoksa farklı değişkenine s değerini ekliyor ve son satırda print() ile ekrana yazdırılıyor.


Örneğin bir dosyadaya satır eklerken, kelime ararken vs for döngüsünü kullanırız. Nasıl kullanmayı öğrendiğinde gücü hissedeceksin :)

Şimdi range() fonksiyonunu inceleyelim ve for ile ilgili bir kaç örnek üzerinde çalışalım.


Python range() fonksiyonu

range, kelime anlamı olarak aralık anlamına gelir. Bu ay olan aralık değil tabi ki :)
Belirli sayılar arasındaki sayıları veren bir fonksiyondur. Örnek üzerinde göstereyim.

for i in range(1, 10):
    print (i)
1 ila 10 arasındaki (birde dahil) tüm rakamları for kullanarak ekrana yazdırdık.

range(0, 10) ibaresi, range(10) değerine eşittir. 0 kullanacağın zaman yazmak zorunda değilsin. Bir başlangıç değeri verilmediğinde ekrana yazdırılan sayılar 0'dan başlar.


range() fonksiyonunun listelerde kullanımına bakalım.

rakamlar = list(range(10))
list(range(10)) ibaresi ile 0-9 arasındaki rakamları, rakamlar ismindeki listeye eklemiş olduk.


range() fonksiyonunun print() içinde kullanımı aşağıdaki gibi.

print (*range(1, 10))
Bu satır sonrasında 1-9 arasındaki sayılar birer boşluk ile ekrana yazdırılacak.
Arasındaki "*" işaretine dikkat edin. Bu Python3 ile gelen değişikliktir. Python2'de "*" işareti kullanmadığımızda sayılar yazdırılıyordu. Python3'de "*" kullanmanız gerekiyor.


2 ila 20 arasındaki çift sayıları range() fonksiyonu ile yazdırmayı deneyelim.

print (*range(2, 20, 2))
Üçüncü argüman, yani sondaki 2 sayısı kaçın katlarını yazdırmak istediğimizi belirtiyor.


50 ila 150 arasındaki sayıları 5'er beşer yazdıralım.

print (*range(50, 150, 5))
Çıktısı aşağıdaki gibi olacaktır.
50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145


Küçük bir örnek ile yazının son örneğini paylaşmış olayım.


for i in range(1, 15):
   print ('x' * i)

Çıktısına bakalım.
x
xx
xxx
xxxx
xxxxx
xxxxxx
xxxxxxx
xxxxxxxx
xxxxxxxxx
xxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxxx

Bunu print() yapmaya çalıştığınızı düşünsenize :) Ne gerek var yahu böyle şeylere.


For döngüsü ve range() fonksiyonu yazımın sonuna geldim. Bir sonraki yazım while ile ilgili olacak. break gibi fonksiyonları göstereceğim.

Anlamadığın yer olursa sormaktan çekinme. Öğren diye yazıyorum bunları :)
Görüşlerini ve yorumlarını da HackerAdana@Protonmail.com adresine iletebilirsin. Sonraki yazıda görüşürüz ziyaretçi! :)