Python dilinde bilmeniz gereken en önemli kavramlardan birisi döngülerdir.
Döngüler yazmış olduğumuz kodların belirli sayıda veya sonsuza kadar çalışmasını sağlar.
Python da 2 adet döngü kullanılmaktadır. (Diğer dillerde de vardır)
Bunlar for ve while döngüsüdür.
for döngüsü
Belirli sayıda işlemlerin tekrarlanması için kullanılan döngülerdir.
for x in range(5): print(x)
Yukarıdaki kodun çıktısı

Gördüğünüz gibi x değişkeni 0 dan başlayarak 4 e kadar sayılar yazdı. Yani toplam 5 defa döngü oluştu(Burada unutmamanız gereken bilgisayar saymaya her zaman 0 dan başlar)
Bu ifadede for döngünün başlangıcını temsil eder.
x değişkendir. x yerine herhangi bir değişken yazılabilir.
range(5) ifadesi döngünün hangi aralıkta çalışacağını belirler. Burada başlangıç değeri verilmediği için başlangıç değeri 0 olarak kabul eder. Ekrana 5 defa ekrana yazar.
range() İfadesinin Kullanımı
range (başlangıç değeri, son değer, arttırma/azaltma değeri) :
for n in range(22,32): print(n)
Bu kodun çıktısı

Görüldüğü gibi 22 dahil ancak 32 dahil değil(toplam 10 defa dönüyor) Aynı zamanda 1 er 1 er artıyor.
Aşağıdaki örnekte de artım miktarını 2 yaptık. Yani 2 er 2 şer sayacak. Toplam 5 defa dönüyor.
for n in range(2,12,2): print(n)

Aşağıdaki kod ile de 16 dan başla 0 a kadar 3 er 3 er geri say diyoruz.
for n in range(16, 0, -3): print(n)

Başka bir örnek
top= 0 for i in range(1, 44): # burada döngü değişkeni olarak i kullanılmıştır. top+= i print(top)
Yukarıdaki kod çıktı olarak 946 sayısını verir. Burada yaptığımız işlem 1 den 44 e kadar olan sayıları toplamaktır.
range() ile ilgili örnekler
range(10) → 0,1,2,3,4,5,6,7,8,9
range(1, 10) → 1,2,3,4,5,6,7,8,9
range(1, 10, 2) → 1,3,5,7,9
range(10, 0, -1) → 10,9,8,7,6,5,4,3,2,1
range(10, 0, -2) → 10,8,6,4,2
range(2, 11, 2) → 2,4,6,8,10
range(-5, 5) → −5,−4,−3,−2,−1,0,1,2,3,4
range(1, 2) → 1
range(1, 1) → ()
range(1, -1) → ()
range(1, -1, -1) → 1,0
range(0) → ()
format() Fonksiyonu
Bazı durummlarda print içindeki ifadenin değerini değiştirmek isteyebiliriz. Bu durumda format() fonksiyonunu kullanabiliriz. Kullanımı aşağıdaki gibidir.
print("{} çok çalışkan bir öğrencidir".format("ahmet"))
Bu durumda ekrana “ahmet çok çalışkan bir öğrencidir” yazar. {} içinde yazılan yeri format(“ahmet”) ile ahmet yazısı ile değiştirmiş olduk.
Başka bir örnek
print("{} bugun hava {} derecedir. ".format("Kahramanmaraş",34))
Bu kodun çıktısı “Kahramanmaraş bugun hava 34 derecedir. “ olacaktır. Burada görüdüğü gibi format fonksiyonu ile süslü parezdeki ifadeleri sırayla istediğimiz gibi değiştirebiliriz. (Eğer sıra ile gitmesini istemiyorsak {2} {1} gibi yazabiliriz)
Şimdi de for döngüsü ile her sayının 10 katını alan kod yazalım
for x in range(0,22): print("{} sayısının 10 katı {} dir.".format(x,x*10))

while() Döngüsü
while döngüsünde bir koşul belirlenir ve bu koşul True olduğu sürece döngü devam eder. Eğer koşul sürekli olarak doğru(True) olursa döngümüz sonsuza kadar devam eder.
Örnek Kulllanımı
UYARI: Aşağıdaki kod programınızın kilitlenmesine neden olabilir. Sonsuz döngü vardır.
sayac=0 #başlangıç değeri while sayac<4: #burada 0 değeri 4 den küçük olduğu için koşul sağlanır. print("Merhaba") #Ekrana sürekli merhaba yazar #yalnız burada koşul süreklü sağlandığı için sonsuza kadar devam eder.
Yukardaki kodun sonsuz döngüden çıkması için
sayac=0 #başlangıç değeri while sayac<4: print("Merhaba") sayac+=1 #sayac değerini 1 er 1 er artır
Burada sayac+=1 diyerek sayac değerini 1′ er 1′ er artırmış olduk. Böylede ekrana 4 defa “Merhaba” yazdıktan sonra döngü sonlanır.
NOT: Eğer sonsuz döngü yapmak istiyorsak aşağıdaki ifadeyi kullanabiliriz.
while True: print("Ben sonsuza kadar yazarım")
While Döngüsü ile İlgii Örnek Sorular
Dışarıdan negatif sayı girilinceye kadar sayıları toplayan bir döngü yapın.
1. çözüm yöntemi
sayi = 0 toplam = 0 print("Bir sayı giriniz, negatif sayı döngüyü sonlandırır:") while sayi >= 0: sayi= int(input()) toplam += sayi print("Toplam=", toplam)
2. çözüm yöntemi
sayi = 0 toplam = 0 print("Bir sayı giriniz, negatif sayı döngüyü sonlandırır:") while True: sayi= int(input()) if sayi>=0: toplam += sayi else: break print("Toplam=", toplam)
break ifadesi (döngüyü bitir)
break ifadesi ile python da bir döngüyü sonlandırmamızı sağlar. Kod yazarkan yukardaki örnekte olduğu gibi bazı durumlarda döngüden çıkmamız gerekebilir. Bu durumda break ifadesi kullanılır.
continue ifadesi (döngüyü tekrar başlat)
continue ifadesi döngüyü başa sarmak için kullanılır.
Örneğin 0 dan 6 ya kadar tek sayıları toplayan bir program yapalım
toplam=0 for x in range(6): if(x%2==0): #eğer 2 ye böldüğümüzde kalan 0 ise continue #döngüden çıkma ancak başa dön toplam+=x print(toplam)
Bu işlemin sonu 9 olacaktır. 1+3+5=9
İç İçe Döngüler
Bazı durumlarda iç içe döngüler kullanmak gerekebilir.
Bu durumda iki döngüdeki sayıları çarparak kaç adet döngü olacağını bulabiliriz.
Örneğin:
for x in range(3): for y in range(2): print("Heeeyyy")
Burada ekrana 6 defa Heeeyyy yazacaktır. (3×2)

Şimdi de Zor Bir Örnek Çözelim
Çalışmayan bir bilgisayar için sorun çözme adımlarını gösteren while döngüsü yapalım.

print("Yardım Edin! Bilgisayarım Çalışmıyor") cozum = False while not cozum: print("Bilgisayardan herhangi bir ses geliyor mu (fans vb) ") secim = input("Veya herhangi bir ışık yanıyor mu? (y/n):") if secim == "n": secim = input("Fişe takılı mı (y/n):") if secim == "n": print("Fişe takın") else: secim = input("Açma düğmesine bastınız mı (y/n):") if secim == "n": print("Açma düğmesine basın.") else: secim = input("Sigorta atmış mı? (y/n):") if secim == "n": secim = input("Şalter inmiş mi (y/n):") if secim == "n": print("Şalteri kontrol edin veya yenisi ile değiştirin. ") else: print("Teknik servise başvurun.") cozum = True else: print("Sigortayı kontrol edin. ") else: print("Teknik servise başvurun") cozum = True
İyi kodlamalar