Pythontr

husonet | Tarih: 25.09.2014

Python While Döngüsü

Python programlama dilindeki while döngüsü, belirli bir koşul sürdükçe döngü içindeki kod bloklarların tekrar tekrar yürütür.

Python programlama dilinde while döngüsünün sözdizimi aşağıdaki şekildedir.


while koşul:
ifade(ler)

Burada ifadeler yalnız bir ifade ya da bir ifade bloğu olabilir. Koşul herhangi bir ifade olabilir. Koşul doğru oldukça döngü yinelenir.


Koşul yanlış olduğunda, program denetimi döngü bloğunu takip eden diğer satıra geçer.


Python'da, bir programlama yapısından sonra aynı sayıda karakter alanıyla girintilendirilen tüm ifadeler için bir kod bloğunun parçası olarak kabul edilir. Python ifadeleri gruplama yöntemi olarak girintileme yöntemini kullanır. Bu yöntem Python programlama diline has bir yöntemdir. Ayrıca bu yöntem okunabilirlik açısından oldukça kullanışlı bir yöntemdir. Python programlama dili okunabilirliğe verdiği önemi, girintileme mantığını kendi dil yapısına oturtarak sağlamıştır.


Akış Diyagramı


 Python while Döngüsü

While döngüsünde bilmeniz gereken en önemli nokta ise döngü hiç çalışmayabilir olmasıdır. Şart karşılaştırılıp sonuç yanlış olduğunda döngü gövdesi atlanır ve döngüden sonraki ifadeler çalıştırılmaya başlar.


Python While Döngüsü Örnekleri


#!/usr/bin/python

count = 0
while (count < 9):
print 'Say:', count
count = count + 1

print "Hosca kalin!"

Yukarıdaki kod çalıştırıldığında aşağıdaki çıktıyı verir:


Say: 0
Say: 1
Say: 2
Say: 3
Say: 4
Say: 5
Say: 6
Say: 7
Say: 8
Hosca kalin!


Bu kod bloğunda döngünün çalışma şartı count değişkeninin 9 dan küçük olma durumudur. Şart true döndürdükçe ekrana basma işlemi gerçekleşir ve her ekrana alınan çıktı ardından şart değişkeni bir sayır arttırılır.


Python Sonsuz Döngü


Bu tip döngüler sıklıkla oyun programlama gibi alanlarda oldukça tercih edilir. Bir koşul hiç bir şekilde False olmayacak şekilde yapılandırılır ise bu döngü sonsuz döngüdür. Ayrıca yapılan ufak hatalardan istemeden programımızı sonsuz döngülere sokabiliriz bu hususa dikkat etmeliyiz.


Ayrıca sonsuz döngüler Server ve Client arasındaki kullanımlarda da tercih edilebilir yapılardır. Bu tip yapılar socket üzerinden akan bilgiyi devamlı okumak için yapılandırılır.
#!/usr/bin/python

var = 1
while var == 1 : # This constructs an infinite loop
num = raw_input("Bir numara girin :")
print "Sizin girdiginiz numara: ", num

print "Hoscakal!"

Yukarıdaki kod çalıştırıldığında aşağıdaki sonucu verir:


Bir numara girin :3
Sizin girdiginiz numara: 3
Bir numara girin :7
Sizin girdiginiz numara: 7
Bir numara girin :9
Sizin girdiginiz numara: 9
Bir numara girin :13
Sizin girdiginiz numara: 13
Bir numara girin :^CTraceback (most recent call last):
File "test.py", line 5, in <module>
num = raw_input("Bir numara girin :")
KeyboardInterrupt


Ne zaman while loop döngüsü kullanılmalı?

Yukarıdaki örnek kod çalıştırıldığında sonsuz bir döngüye girer çıkmak için CTRL + C'yi kullanmanız gerekir.


Python While Döngüsü ile birlikte else deyimi kullanma


Python programlama dili, döngülerle birlikte else kullanımını destekler.


Else deyimi bir while döngüsü ile kullanılırsa, else ifadesi koşul yanlış olurca yürütülür.


Aşağıdaki örnek bir while döngüsüyle birlikte else kullanımını gösterir.


#!/usr/bin/python

count = 0
while count < 5:
print count, " 5'ten kucuk"
count = count + 1
else:
print count, " 5'ten daha buyuk"

Yukarıdaki kod çalıştırıldığında aşağıdaki sonucu verir.


0 5'ten kucuk
1 5'ten kucuk
2 5'ten kucuk
3 5'ten kucuk
4 5'ten kucuk
5 5'e esit ya da daha buyuk


Tek Satır üzerinde While Kullanımı


Koşul ve çalıştırılacak deyim tek bir ifadeden oluşuyorsa tek bir satır halinde kullanabilirsiniz.


Sözdizimi ve bir satırlık while ifadesinin örneği
#!/usr/bin/python

flag = 1

while (flag): print 'Flag degisken True degere sahiptir'

print "Hoscakal!"

Yukarıdaki kod çalıştırılıdığında aşağıdaki sonucu verir.


Flag degisken True degere sahiptir
Flag degisken True degere sahiptir
Flag degisken True degere sahiptir
^CTraceback (most recent call last):
File "test.py", line 5, in <module>
while (flag): print 'Flag degisken True degere sahiptir'
KeyboardInterrupt


Sonsuz döngüden çıkmak için CTRL + C tuş kombinasyonu kullanılabilir.


Python For Döngüsü gibi döngü şartına uyduğu şekilde kod tekrar edilir. ForLoop aksine döngü n defa tekrarlanmaz tanımlanmış bir koşul gerçekleşene dek devam eder.

Örnek
n = raw_input("Lütfen 'merhaba' yazın ve entera basın:")
while n.strip() != 'merhaba':
n = raw_input("Please enter 'merhaba':")


While döngüsü ayrıca sonsuz döngülerde tercih edilir. Sonsuz döngüler oyun programlamada sıkca kullanılan yapılardır.


while True:
n = raw_input("Lütfen 'merhaba' yazın ve entera basın:")
if n.strip() != 'merhaba':
break

Python For Döngüsü /makale/python-for-dongusu-257