Python Döngüler – 9. Ders

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

Yayınlayan

Ahmet KADAK

Bilgisayar Öğretmeni & Bilgisayar Mühendisi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.