Döngülerin İngilizce'deki karşılığı 'loop' şeklindedir. Döngüler, bir işi sürekli olarak yapabilmemize olanak tanır; buna, kullanıcıdan sürekli girdi almak, sürekli olarak belli bir istek (request) yollamak, bir dosyanın varlığını veya yokluğunu sürekli olarak gözetmek gibi işlemler dahildir. Python'da iki adet döngümüz vardır; ayrıca bu döngülere eklenebilecek iki adet komutumuz var. Bu yazıda, while döngüsünü ele alacağız. Sonrasında hepsini göreceğiz.
while döngüsünün syntax yapısı aşağıdaki gibidir.

while anahtar kelimesini yazdıktan sonra bir parantez açıyoruz ve koşulumuz ne ise onu, bu parantezler arasına giriyoruz. Sonrasında klasik iki nokta üst üste ifadesini koyuyoruz ve alt satıra, girintili bir şekilde kodlarımızı yazıyoruz. Şimdi, bunun nasıl çalıştığına bakalım.

num isminde bir değişkenim var ve bunun değeri 0 şeklinde. Bu değişkeni tanımladıktan sonra aşağı, bir while döngüsü verdim. Bu noktada koşulumuzun "num değişkeninin değeri 20'den küçük" şeklinde bir şeyi ifade ettiğini artık biliyorsunuz. Bu koşula 'while' ifadesi eklendiğinde bu cümlenin anlamı şöyle olacaktır: "num değişkeninin değeri 20'den küçük olduğu sürece...". Buradan da anlaşılacağı üzere 'while' kelimesinin anlamı '-iken' veya '...sürece' şeklindedir. Yukarıdaki kodun tam anlamını ise şu şekilde ifade edebilirim: "num değişkeninin değeri 20'den küçük olduğu sürece ekrana 'Cyber Worm' yazdır." Yani ben, ekrana 20 defa 'Cyber Worm' yazdırmak istiyorum. İsterseniz bunu çalıştırıp ne olacağına bakalım.

Terminal ekranının kaydırma çubuğuna bakarsanız en aşağıda olduğunu göreceksiniz. Bunun sebebi, aslında bu kodun bir sonsuz döngüye yol açmasından kaynaklanıyor. Ben bu kodun çalışmasını, 'CTRL + C' ile durdurdum; eğer durdurmasaydım sonsuza kadar 'Cyber Worm' yazdıracaktı. Bu ne saçmalık?
Python, ilk önce while döngüsünün koşuluna bakıyor. Sonrasında bu koşul sağlanıyorsa döngünün içindeki komutları yerine getiriyor. Döngüdeki komutlar bittikten sonra tekrar döngünün koşuluna bakıyor ve eğer koşul, sağlanmaya devam ediyorsa döngü içerisindeki kodları bir defa daha çalıştırıyor. Bu noktada num değeri her zaman 20'den küçük olacağı için döngüdeki kodlar sonsuz defa çalıştırılacaktır.
Bunun sebebinin 'sonsuz döngüler' olduğundan söz ettim. Peki, bu ne demek? Sonsuz döngü, normal şartlarda kaçınılması gereken bir yapıdır. Ağır bir iş yapan bir sonsuz döngüye maruz kaldığınızda çok kısa bir süre içinde bilgisayarınız haddinden fazla ısınacak ve sizi biraz korkutacaktır. Ağır bir sonsuz döngünün, bilgisayarın işlemcisini yakabileceğini biliyorum. Bu yüzden biz, sonsuz döngüleri gerekmedikçe kullanmayacağız (evet, gerektiği yerler oluyor).
Biraz önceki kod neden sonsuz döngüye girdi? Biz, num adında bir değişken atadık ve ona 0 değerini verdik. Sonrasında 'while (num < 20)' ve 'print("Cyber Worm")' ifadesini verdik. Bunun anlamı; "num değişkeni 20'den küçük olduğu sürece ekrana 'Cyber Worm' yazdır." şeklindeydi. Bu noktada num değişkeni, her hâlükârda 20'den küçük olmaz mı? Yani 0, 20'den küçüktür, öyle değil mi? Biz de zaten "20'den küçük olduğu sürece yap" dediğimiz için bu bir sonsuz döngüye yol açtı.

Daha iyi anlamanız için kodun çıktısını biraz güzelleştirdim. Dikkat ederseniz num değeri hiç artmıyor; hep sıfır olarak hesaplanıyor.
Bu sorunu çözebilmemiz için num değişkeninin değerini arttırmamız gerekir. Bunu artırıyoruz çünkü num değişkeni, 20'ye geldiğinde bu döngünün sona ermesini istiyoruz. Bunun için iki yolumuz var:
num = num + 1num += 1Bunların ikisi de, verilen değişken değerini birer birer artırır; istediğinizi kullanabilirsiniz. Bu noktada birer birer artırılan bu değerimiz; ikişer ikişer, üçer üçer de artırılabilir. Bunu aşağıdaki gibi yapabilirisiniz:
x = x + 2x += 3Artırma işleminin yanında eksiltme işlemini de gerçekleştirebilirsiniz. Bunun için sadece matematik operatörünü değiştirmeniz yeterli olacaktır.
x = x - 1x -= 4Bu artırma işleminin mantığının nasıl işlediği konusunda Bash Script Dersleri içerisinden bir hatırlatıcı ile desteklemek istiyorum:

Şimdi, kodu biraz düzeltelim ve biraz daha açıklama yapalım.

Gördüğünüz gibi artırma işlemi yaptım ve döngü, yirminci tekrarda son buldu yani sonsuz döngü falan gerçekleşmedi. Çalışma mantığını aklınıza getirin. Python, bir while döngüsü gördü ve içerisindeki koşula baktı. Koşul eğer sağlanıyorsa, ekrana 'Cyber Worm' yazdırdı ve bir sonraki komut olan 'num += 1' komutu sayesinde num değerini bir artırdı. Arka planda artık num = 0 değil, num = 1 oldu.
Sonrasında Python, tekrar num değişkeninin 20'den küçük olup olmadığına baktı ve num değerinin 1 olduğunu görünce bunun 20'den küçük olduğuna karar verdi. Koşul sağlandığı için ekrana 'Cyber Worm' yazdırdı ve num değerini bir artırarak 'num = 2' olmasını sağladı.
Bu, 20'ye kadar böyle sürüp gidecektir. num değeri 20 olduğu an 'while (20 < 20)' ifadesi olmuş olacak ve bu ifadenin değeri 'False' olmuş olacaktır. Yani koşul sağlanmamış olacaktır. Bu yüzden de döngü son bulacaktır.
Şimdi, aşağıdaki örneği incelemenizi, anlamanızı ve uygulamanızı istiyorum. Bununla beraber bu konuyla ilgili kendi pratiklerinizi yapmanızı istiyorum. Bir sorunla karşılaştığınızda Telegram kanallarımızdan veya Instagram hesabımızdan bize ulaşabilirsiniz.

Sonsuz döngü yaratmanın bir yolu daha vardır; while True:
Bu kodun bize söylediği şey şudur: "Koşul doğru olduğu sürece yap." şeklindedir. Siz, bu True yapısını bozacak bir işlem yapmadığınız sürece bu döngü sürecektir. Hemen bakalım.

Bakın, burada yine bir artırma işlemi yapıyorum ama bu, döngüyü bitirmek için değil sadece çıktının daha iyi gözükmesi içindi. Bu sonsuz döngü sayesinde Python, yaklaşık 3 saniyelik bir zaman dilimi içerisinde yaklaşık 30 bin defa ekrana sitemizin adresini yazdırdı. Buradaki sonsuz döngü, özel bir komut dışında herhangi bir şekilde sonlanamaz; komutları göreceğiz. Bu şekilde bir ifadenin de var olduğunu bilmenizi istedim çünkü ben de bunu sık kullanıyorum.
Yayınlanma Tarihi: 2022-10-27 15:48:22
Son Düzenleme Tarihi: 2022-10-29 21:29:26