Site Loader

pythonearth.com Python Eğitim Serisinden herkese merhabalar. Python Döngüler yazısı ile birlikteyiz 🙂

Şu ana kadar Python dilinde uzun bir yol katettik. Etkileşimli kod yazmayı öğrenip kullanıcıya kararlar verdirerek kodumuzu yönlendirdik. Ama şimdiye kadar yazdığımız kodlar bir kere çalışıyor ve sona eriyordu oysa biz çoğu zaman kodlarımızın belirli koşullarda sürekli çalışmasını isteriz. Bu yapılara döngü adını  veririz.

Döngüler bütün programlama dillerinde bulunan ve belirli koşullar sağlandığında sürekli çalışan yapılardır. Döngü yapıları kod içinde bizleri tekrara düşmekten kurtarır ve zamandan tasarruf etmemizi sağlar. Örneğin sosyal medya hesabımıza giriş yapmak için program bize kullanıcı adını ve şifreyi sorar. Biz kullanıcı adını ve şifreyi doğru girene kadar bu döngü devam eder. Uyum sağlandığında giriş başarılı olur. Bir başka örnek ise ATM’lerdir. Kartımızı yerleştirip şifremizi girdikten sonra program başlar. Para yatırma-çekme, fatura ödeme gibi işlemleri bir döngü dahilinde gerçekleştiriyoruz ve kart iadesini istediğimizde döngüyü sonlandırmış oluyoruz.

Python’ da iki farklı döngü çeşidi vardır;

  • While Döngüsü
  • For Döngüsü

Bunların yanında range() ve len() fonksiyonları ile break, continue ve in deyimlerini öğreneceğiz.

Python Döngüler

While Döngüsü

İngilizce bir kelime olan while, Türkçede ‘- iken, … olduğu sürece’ gibi anlamlara gelir. While döngüsü de her döngü gibi koşullar sağlandıkça kendisini tekrar eder ve koşul sağlanmadığında döngü sona erer. En basit örnekle while döngüsü şöyle gösterilir;

x=3

while x==3:

Burada oluşturduğumuz x değişkenine 3 değerini atadık ve bir sonraki satırda while döngüsüyle “x değişkeninin değeri 3 olduğu sürece”  şartını koyduk .  Şimdi koşul sağlandıkça hangi işlemin tekrar edeceğini ekleyelim;

x=3
while x==3:
 print(" Python Earth")

Burada en başında x değişkenini 3’e eşitlediğimiz için ve koşulumuzu da ” x==3 ” yaptığımız için program dışarıdan müdahale olmadığı sürece sonsuz bir döngü içerisine girer. Bu da çoğu programcının hoşuna gitmez çünkü yazdığımız programı durduracak bir ölçüt koymadık. Başka örneklere bakalım;

sayi=0
 
while sayi <5:
 
    print(sayi)
 
    sayi = sayi +1

Burada da sayi değişkenini sıfıra eşitleyip  5 değerinden küçük olması şartı sağlandığında sayi değerini her seferinde 1 artırdık.  İşte burada kodumuzun sonsuz döngüye girmesine engel olduk.

Çıktı:

0
1
2
3
4
sayac = 0
while sayac < 100:
    sayac = sayac + 2
    print(sayac)

Bu örneğimizde de başlangıçta bir sayaç belirledik ve 0’a eşitledik.

2. satırda sayacın 100’den küçük olması şartıyla döngüyü devam ettirme şartını koyduk.

3. satırda  sayacı her adımda 2 artırdık ve son olarak printle ekrana yazdırdık. Çıktımız ise 0-100 arasındaki çift sayılar olacaktır.

While döngüsüyle son olarak da harf notumuzu hesaplayan bir örnek yapalım.

#Harf notu Hesaplama Programı

while True:

    vize = int(input("Vize Notunuzu Giriniz :"))

    final = int(input("Final Notunuzu Giriniz :"))
    ortalama = (vize * 0.4) + (final * 0.6)  # vizenin %40ı finalin %60ı alındı

    if (ortalama >= 85):

        print("Harf notunuz : AA")

    elif (ortalama >= 70 and ortalama < 85):

        print("Harf notunuz : BA")

    elif (ortalama >= 60 and ortalama < 70):

        print("Harf notunuz : BB")

    elif (ortalama >= 45 and ortalama < 60):

        print("Harf notunuz : CB")

    elif (ortalama >= 0 and ortalama < 45):

        print("Harf notunuz : FF")

For Döngüsü

Python For döngüsü ne işe yarar?

For döngüsü de her döngü gibi koşullar sağlandıkça kendisini tekrar eder ve koşul sağlanmadığında sona erer. For döngüsünün while döngüsünden farkı daha az anahtar kelime kullanarak kod yazmamızı sağlamasıdır. Bunu görmek için while döngüsü başlığındaki 2. örneğimizi for döngüsüyle de yapalım;

for sayi in range(0,5):
 print(sayi);

Çıktı:

0
1
2
3
4

Görüldüğü üzre for döngüsü sayesinde daha az kod satırıyla aynı çıktıyı aldık. For döngüsü,  while döngüsüne göre biraz daha işlevseldir  ve while ile yapılması  daha zor (veya uzun) olan işlemler for döngüsü ile daha kolay bir şekilde yapılabilir. Tabii genel olarak iki döngünün de çalışma mantığı farklıdır.

Python Döngüler ; For döngüsü, programdaki her verinin üzerinden geçer ve aynı işlemi her bir veri için döngü sonlanana kadar yapar. While döngüsü ise bir ifadenin boolean(binary) değerini kontrol eder ve ifade True ise döngü devam eder, False ise döngü sonlanır.

For döngüsünün temel iskeleti şu şekildedir;

for değişken_adı in range(değişken):

 yapılacak_işlem

 

Öncelikle in işleci ve range fonksiyonunu açıklayalım;

range() Fonksiyonu

Türkçe karşılığı “aralık” anlamına gelen range() fonksiyonunu belirli bir aralıkta bulunan sayıları göstermek için kullanırız. Kullanımı şöyledir;

for sayi in range(5,45,5):

    print(sayi)

range(başlangıç değeri , bitiş değeri, değişim miktarı)

 şeklinde sıralanır.

range(10): ‘0-9 ‘aralığındaki sayıları belirtir. Başlangıç değerini belirtmediğimiz için default olarak ‘0‘, değişim miktarını belirtmediğimiz içinse default olarak ‘1‘ değerini alır. Son olarak da bitiş değerini hiçbir zaman dahil etmez.

range(5,45,5):  5 ile 44 arasındaki sayıların 5erli artışını kapsar. (5-10-15-20-25-30-35-40)

range(10,2,-3): 10 ile 3 arasındaki sayıların 3erli azalışını kapsar.(10-7-4)

 

in İşleci

Türkçe karşılığı “içinde” olan bu işleci değişkenin istenilen değer ya da aralık içinde olup olmadığını bulmak için kullanırız. Kullanımı şu şekildedir

for sayi in range(10);

print(sayi)

Burada sayi değişkeni 0-9 aralığındaki tüm değerleri kapsar.

Len() Fonksiyonu

Türkçe karşılığı “uzunluk” olan length kelimesinin kısaltması olan bu fonksiyon; karakter dizileri, liste, demet gibi değişkenlerin uzunluğunu gösterir. Genel kullanımı şöyledir;

metin = "PythonEarth"

print(len(metin))

Çıktı:
11
liste = [3,99,"PythonEarth",2+3j]
print(len(liste))

Çıktı:
4

 

Break Deyimi

Türkçe karşılığı kırmak, koparmak olan break deyimi, Python da döngüyü sonlandırmak için kullanılır. Python break ifadesini gördüğü zaman diğer kod satırlarını yorumlamaz ve programı sonlandırır. Örneğin;

liste = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in liste:
    if (i == 5):
        break
    print(i)

Yukarıdaki örnekte içinde 1-9 aralığındaki sayıların olduğu bir liste tanımladık. Sonrasında i değişkeni 5e eşitlendiğinde break komutunu verdik ve döngü sonlanmış oldu.

Şimdi de doğru  kullanıcı adı-parolayı aldığında hesaba giriş yapan ve break komutuyla döngüyü bitiren bir örnek yapalım;

kullanici_adim = "PythonEarth"

parolam = "1234"

giris_hakki = 3

while giris_hakki > 0:
    giris_hakki -= 1
    kullanici_adi = input("Kullanıcı Adınızı Girin :")

    parola = input("Parolayı Giriniz :")

    if kullanici_adi == kullanici_adim and parola == parolam:

        print("Sisteme başarılı bir şekilde giriş yaptınız.")

        break

    else:

        print("Kullanıcı bilgileri yanlış tekrar deneyin!")

Burada break komutunu vermediğimizde kullanıcı adı ve parola doğru girilse bile program  bizden tekrar tekrar aynı bilgileri istemeye devam edecekti.

Continue Deyimi

Türkçe karşılığı “devam etmek” olan Continue ifadesi, kod satırlarının geri kalanını atlamak için kullanılır. Program continue deyimini gördüğü an kendisinden sonra gelen her şeyi es geçer ve başa döner. Döngü sona ermez, ancak bir sonraki yinelemeyle devam eder.

x = 0
while x < 5:
   x+=1
   if x == 2:
       continue
   print(x)

 

Şimdi birçok şeyi öğrendiğimize göre örneklere devam edebiliriz;

  1.  Kullanıcının girdiği iki sayı arasındaki sayıları ekrana yazdıran program;
    sayi1=input('1. Sayı: ')
    sayi2=input('2. Sayı: ')
    for i in range(int(sayi1)+1,int(sayi2)):
          print(i)
    
    //ÇIKTI:
    1. Sayı: 3
    2. Sayı: 7
    
    4
    5
    6
    

     

  2. Kullanıcıdan alınan sayının faktöriyelini alan program;
    sonuc = 1;
    sayi = input('1. Sayı: ')
    for i in range(1, int(sayi) + 1):
     sonuc *= i
    print("{0} sayısının faktoriyeli : {1}".format(sayi, sonuc))
    

     

  3. Kullanıcının girdiği sayının asal olup olmadığını bulan program;
    sayac=0
    sayi=input('Sayı: ')
    for i in range(2,int(sayi)):
          if(int(sayi)%i==0):
                sayac+=1
                break
    if(sayac!=0):
          print("Sayı Asal Değil")
    else:
          print("Sayı Asal")

 

Bu yazımızda Python Döngüler (for, while) konusunu ele aldık. Sorularınızı yorum kısmında belirtebilirsiniz aynı zamanda eksik veya yanlış yerler için de iletişime geçiniz. Bir sonraki yazımızda görüşmek üzere. Hoşçakalın. 😊

Tüm Python yazıları için buraya bakın.

 

Post Author: Özlem Boran

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir