Python ile “while” Döngüsü Kullanımı
Bu yazımızda, Python programlama dilindeki “while” döngüsünü ele alacağız. Bu döngü türü, bir koşul doğru olduğu sürece belirli işlemleri yapmamıza olanak sağlar. Özellikle belirli bir şart yerine getirilene kadar işlem yapmak istediğimizde, “while” döngüsü çok işimize yarar.
Python “while” Döngüsü
Programlamanın ayrılmaz bir parçası olan döngüler, birbaşka deyişle yinelemeler, bir koşulun doğru kalmaya devam ettiği müddetçe yapması istenilen bir dizi ifadeyi tekrarlamak anlamına gelir. Tekrarlanmanın sayısı ise ilgili test koşuluna bağlıdır. Bu yüzden, tekrarlanacak olan şey, üzerinde düşünülerek kararlaştırılmalıdır.
Türkçede “… iken, … olduğu sürece” gibi anlamlara gelen while döngüsü, for döngüsü ile beraber Python’da kullanılan iki döngü yapısından biridir. Zaten Türkçe anlamından da anlaşılacağı üzere, kod bloğu içerisinde tanımlanan kodları koşul geçerli kalmaya devam ettikçe çalıştırır. Haliyle bu koşul sağlanmadığı anda ise döngü sonlanmaktadır.
Python’daki while
döngüsünün temel sözdizimi (syntax) şu şekildedir:
while koşul:
# koşul doğru olduğu sürece çalışacak kod bloğu
Bu yapıda koşul
, döngünün devam edip etmeyeceğini belirleyen bir ifadedir. Eğer bu koşul
ifadesi True
(doğru) ise, kod bloğu çalıştırılır. Kod bloğu tamamlandıktan sonra, koşul
ifadesi tekrar değerlendirilir. Eğer hâlâ True
ise, kod bloğu tekrar çalıştırılır. Bu işlem, koşul
ifadesi False
(yanlış) olana kadar devam eder. Örneğin:
sayac = 0
while sayac < 5:
print("Döngü", sayac + 1, ".kez çalışıyor.")
sayac += 1
"""
Çıktı:
Döngü 1 .kez çalışıyor.
Döngü 2 .kez çalışıyor.
Döngü 3 .kez çalışıyor.
Döngü 4 .kez çalışıyor.
Döngü 5 .kez çalışıyor.
"""
Yukarıdaki kodumuzda sayac
isimli bir değişken oluşturduk ve değerini 0 olarak belirledik. Koşulumuz tabiri cazise “sayac
değişkeninin değeri 5’den küçük olduğu sürece…” anlamı vermekte ve sayac < 5
koşulu True
olduğu sürece döngü içindeki kodlar çalışacağını anlatmaktadır. Kod bloğunda ise her döngü turunda sayac
değişkenini 1 arttırmaktayız (sayac += 1
) ve haliyle döngünün bir noktada sona ereceği işlemi yapmaktayız. Eğer sayac
değerini arttırmamış olsaydık kod sonsuz bir döngüye (infinite loop) girmiş olacaktı ve hiç bitmeyecekti.
“while” Döngüsünde Dikkat Edilmesi Gereken Noktalar
Sonsuz döngüler, dikkat edilmesi gereken bir konudur. Eğer while
döngüsü için belirlediğimiz koşul hiçbir zaman False
olmazsa, programımız sürekli çalışır. Bu da haliyle bilgisayar kaynaklarınının hızla tükenmesine sebep olur. Bu yüzden, döngüyü başlatırken kullandığımız koşulu bir noktada False
yapacak işlemleri mutlaka yapmalıyız.
Bu yüzden, döngü içinde bir çıkış stratejisi oluşturmak oldukça önemlidir. Bunu en basit haliyle, her döngü turunda değişen ve en sonunda döngü koşulunu False
yapacak bir değişkenle yapabiliriz. Örneğin, i += 1
ifadesi ile her döngü turunda i
değişkenini bir artırarak belirli bir sayıda döngüden sonra koşulun yanlış olmasını sağlayabiliriz.
“Peki, While
döngüsünü ne zaman kullanmalıyız?” Belirli bir koşul sağlandığı sürece işlemleri yapmamıza olanak tanısa da, while döngüsünü koşulun ne zaman sona ereceğini tam olarak bilemediğimiz durumlarda tercih etmeliyiz. Örneğin, kullanıcıdan gelen veriyi işlemek gibi dinamik senaryolarda oldukça etkilidir. For döngüsü daha çok, döngünün ne zaman sona ereceğini bildiğimiz senaryolarda işlevseldir.
“while” Döngüsünde “break” İfadesi
Türkçede “terk etmek, kırmak” gibi anlamlara gelen “break” kelimesi, Python’da döngüyü aniden sonlandırmak için kullanılır. Yani, bazen döngü koşulunu beklemeden döngüyü sonlandırmak gerekebilir. İşte böylesi durumlar için “break” komutu devreye girer. Yorumlayıcı, break
komutunu gördüğü anda sadece o an içinde bulunulan for
veya while
döngüsünü sonlandırır ve döngü bloğunun dışındaki kodlara devam eder.
i = 1
while i < 6:
print(i)
if (i == 4):
break
i += 1
"""
Çıktı:
1
2
3
4
"""
Yukarıdaki örnekte verilen Python kodu, i
değişkeni 1’den başlayarak 6’ya kadar olan sayıları ekrana yazdırıyor. Ne zaman ki i == 4
koşulu sağlanıyor işte o zaman break
komutu devreye giriyor ve döngüyü hemen sonlandırıyor.
“while” Döngüsünde “continue” İfadesi
Türkçedeki “devam etmek” anlamına gelen continue
komutu, Python’da döngünün belirli bir noktasında işlemleri kesip döngüyü en baştan başlatmak için kullanılır. Yani, continue
komutu döngünün sadece o anki turunu sonlandırır ve döngü koşulu tekrar değerlendirilerek bir sonraki tura geçilir.
Örneğin, 1’den 5’e kadar olan sayıları yazdırmak istiyoruz, ancak 3’ü atlamak istiyorsak şu şekilde bir kod yazabiliriz:
i = 1
while i < 6:
if i == 3:
i += 1
continue
print(i)
i += 1
"""
Çıktı:
1
2
4
5
"""
Yukarıdaki örnekte, i
değişkeninin değeri 3 olduğunda continue
komutu çalışır ve döngünün o anki turunu sonlandırıp i += 1
ile i
değişkenini artırılır. Ardından, döngü koşulu tekrar değerlendirilir ve döngü devam eder. Bu sayede çıktıda 3 sayısını görmeyiz.
“while else” İfadesi
Python’da “while-else” yapısı, döngü koşulu False
olduğunda else
bloğunu çalıştırmak için kullanılır. Ancak burada önemli bir detay belirtmek gerekir: Eğer döngü break
komutu ile sonlandırılmışsa, else
bloğu çalışmaz. Yani, “else” kısmı yalnızca döngü koşulu doğal bir şekilde False
olursa devreye girer.
Bu yapı, döngünün belirli bir koşulda doğal bir şekilde sonlanması durumunda yapılacak ek işlemler için oldukça kullanışlıdır. Örneğin, belirli bir sayıya kadar saydıran bir döngü kurduğunuzda ve sayma işlemi bittiğinde ekrana bir mesaj yazdırmak istiyorsanız, “while-else” yapısını kullanabilirsiniz.
i = 1
while i < 4:
print(f"{i}. döngü turu")
i += 1
else:
print("Döngü tamamlandı.")
Yukarıdaki örneğimizde, döngü koşulu i < 4
olduğu için 1, 2, 3 sayıları ekrana yazdırılır. Koşul False
olunca da “Döngü tamamlandı.” mesajı ekrana yazdırılır.
Bu yapı her daim kullanılmıyor olsa da, belirli senaryolar için oldukça kullanışlıdır. Haliyle kodun okunabilirliğini ve anlaşılırlığını arttıran gerekli durumlarda, “while-else” yapısını gönül rahatlığıyla kullanabilirsiniz.