Python 11- While Döngüsü ve List Comprehension- Big Datacı

Programlama dilinde döngüler, bir kod bloğunu tekrarlamak için kullanılır. While döngüsü, bir koşula bağlı olarak içerisinde bulunan kod bloğunu tekrarlar.

Python programlama dilinde while kullanımı:

while(kosullar):
   islem1
   islem2
     .
     .

While döngüsünde koşul sağlandığı sürece döngü tekrarlamaya devam eder. Döngünün sona ermesi için koşul durumunun sağlanmaması yani false olması gerekmektedir.

Python programlama dilinde döngüleri girintiyi sağlayarak gerçekleştirebiliriz.

While döngüsü aşamaları

Döngü akış diyagramında bilinmesi gereken, eğer döngü koşulu test edildiğinde koşul yanlışsa while döngüsünün içerisinden geçmeden direkt sonraki kodu çalıştırmasıdır.

Örneğin 1’den başlayıp 10’a kadar birer birer artan sayım değerlerini gösteren bir döngü yazalım.

sayim=0
while(sayim<10):
    print("Sayım: ",sayim)
    sayim=sayim+1
    
print("Döngü bitti")

Kodun çıktısı

Döngüde 1’den 10’a kadar olan sayıları birer birer arttırarak yazdı. Döngü bitince de while’ın dışında bulunan “Döngü bitti” yazısını yazdırarak kodları tamamladı.

Bir diğer örnekte ise listenin elemanlarını indeksleriyle beraber yazdırmaya çalışalım. Listenin elemanları 1’den 9’a kadar olsun.

newlist=[1,2,3,4,5,6,7,8,9]
index=0
while(index < len(newlist)):
    print("Indeks: ",index,"Sayı: ",newlist[index])
    index=index+1
    
print("Döngü bitti.")

Kodun çıktısı

Listede bulunan elemanları indeksleriyle birlikte yazdırıldı.

Sonsuz While Döngüsü

Bir koşul hiçbir zaman false(yanlış) olmazsa döngü sonsuza kadar döner.

Sonsuz döngü işlemciye bağlanmanız gerektiği zaman yararlı olabilir.

Örneğin kullanıcıdan sürekli bir sayı girmesini istiyorsunuz. Bunun kodlamasını yapalım.

deger=1
while (deger==1):
    sayi=input("Sayıyı yazın: ")
    print("Sayınız= ",sayi)
print("Döngü bitti")

Kodun çıktısı

Kodun çıktısında görüldüğü gibi döngü hala devam ediyor. İstediğiniz kadar sayı girin kod yine de kapanmayacaktır. Döngüden çıkmak için Ctrl+C yapabilirsiniz.

While ile Else’in Kullanılması

While’ın bir başka özelliği else ile uyumlu olmasıdır. Else ifadesi döngüye girilmeden atlandığı zaman çalışır.

sayi=0
while (sayi<10):
    print(sayi, "10'dan küçük")
    sayi=sayi+1
else:
    print(sayi,"10'dan küçük değil")

Kodun çıktısı

Kodun çıktısında görüldüğü gibi 1’den 10’a kadar olan sayıların hepsi 10’da küçük fakat 10 10’a eşit olduğundan dolayı küçük değil ifadesiyle karşı karşıya kaldı.

List Comprehension

List Comprehension (Listeleri kavrama) listeleri üretmek için gereklidir. Comprehension, kodlama yaparken hem zamandan tasarruf sağlamamızı hem de daha az kodla işinizi halletmenizi sağlar. Listeleri kolaylıkla üretmek için for döngüsünden yararlanabilirsiniz.

Listelere eleman ekleme işlemi yaparken,

liste1=[10,20,30,40,50]
liste1.append(60)
print(liste1)

Bu şekilde yapılıp listeye 60 elemanını ekliyorduk. Tek tek eklemek yerine daha kolay bir yolunu bulabilir miyiz?

Şimdiki örnekte var olan listeye bir liste daha ekleyelim.

liste1=[10,20,30,40,50]
liste2=[100,200,300,400,500]
for i in liste1:
    liste2.append(i)
print(liste2)    

Kodun çıktısı

Listedeki elemanları tek tek eklemek yerine hepsini for döngüsü kısa sürede ekledi.

While Döngüsü Örnekler

Örnek 1

Mükemmel sayı, sayının kendisi hariç diğer bölenlerinin toplamı kendi değerine eşit olmasına denir. Kullanıcının bir sayı girmesini isteyerek bu sayının mükemmel sayı olup olmadığını kodlayalım.

mukemmel=int(input("Sayıyı giriniz: "))
bolensayi=1
toplam=0
while(bolensayi<mukemmel):
    if(mukemmel % bolensayi==0):
        toplam=toplam+bolensayi
    bolensayi=bolensayi+1    
if(toplam==mukemmel):
    print(mukemmel,"Mükemmel sayıdır.")
else:
   print(mukemmel,"Mükemmel sayı değildir.")   

Kodun çıktısı

8 sayısının bölenleri toplamı 8’e eşit olmadığından dolayı mükemmel sayı değildir.

28 sayısının bölenleri 1+2+4+7+14=28 olduğundan dolayı mükemmel sayıdır.

Örnek 2

List comprehension kullanarak 1’den 100’e kadar olan 5’in katlarını kodlayalım.

besinkatlari=[i for i in range(0,100) if(i%5==0)]
print(besinkatlari)

Kodun çıktısı

Bir Cevap Yazın