7. derste üç bölüm var; A, B, C. İstediğiniz sırayla devam edebilirsiniz.
Şu ana kadar temel programlama komutları (değer atama, yazdırma, vb.) ve hangi cümelelerin if
ifadeleriyle kontrol edildiğini öğrendik. Bu derste döngüleri (loop) (tekrarlama anlamında repetition veya iteration olarak da adlandırılır) öğreneceğiz. Döngü, bilgisayarda aynı (veya benzer) işleri defalarca tekrarlama yöntemidir. Bu derste Python'daki while
ve for
döngülerini ele alacağız.
while
Döngüleri
while
(... iken) ifadeleri bir kod parçasını, koşul gerçekleştiği sürece tekrarlamakta kullanılır. Bir örnek verelim:
Genel yapı şöyledir:
- İlk satır
while «condition» (koşul):
Buradaki koşul «condition» doğruTrue
veya yanlışFalse
sonucunu getiren ifadedir. (if
ifadelerinde gördüğümüz gibi bir Boolean deyimi.) - Daha sonra, girintisi hizalanmış satırlardan oluşan bir blok (yine
if
ifadelerindeki gibi) içinde defalarca tekrarlanmasını istediğimiz ifadeler yer alır. Buna gövde denir. - Programı çalıştırdığımızda tekrarlama şöyle başlar:
- Koşul test edilir; eğer koşul doğru
True
ise gövde satırları işleme konur ve koşul yanlışFalse
çıkana kadar, bu şekilde tekrar tekrar başa dönülür.
- Koşul test edilir; eğer koşul doğru
Yukarıdaki örnekte kalanSüre
0'dan büyük olduğu sürece gövde işleme konup başa dönüldü.
Bu döngülerle sonsuza kadar çalışan programlar yazmak çok kolaydır: infinite loop. Oluşacak hata "Time Limit Exceeded"; çünkü CS Circles web sunucusu bir süre limitini zorunlu kılar; 1 saniye sonunda program sona erdirilir. Eğer programı evde çalıştırsaydınız, sonsuza kadar çalışırdı (ya da siz durduruna kadar, Ctrl-C'ye basarak durdurabilirsiniz). |
for
Döngüleri
Python'daki bir diğer döngü de for
(...dığı için) döngüsüdür. Pek çok durumda bu iki döngü türü de (for
/while
) kullanılabilir ama biri her zaman daha kolay olan yoldur, dolayısıyla ikisini de öğrenmeliyiz. for
döngüleri, işlem tekrarlarını sınırlı bir sayı aralığında (veya daha sonra göreceğimiz gibi belli bir veri listesi içinde) gerçekleştirmek için kurulur.
İşte size bir for
döngüsü örneği.
Sayısal for
döngülerinin genel yapısı
for «değişken» in range(«ilkDeğer», «sonDeğer»): «aynı girintide hizalanmış komut satırları bloğu; döngü gövdesi»Daha önce belirttiğimiz gibi gövdeyi oluşturan blok birden fazla satırdan oluşabilir, önemli olan bu satırların girintilerinin aynı hizada olmasıdır. Önce
ilkDeğer
başlangıç noktası alınarak döngü gövdesi değişken
kullanılarak yürütülür. Sonra
ilkDeğer+1
, ilkDeğer+2
, vd. ile gövde döngüsü sonDeğer-1
, sayısına gelene kadar döngü gövdesi değişken
, üzerinden işletilir. sonDeğer-1
, işlem yapılacak son nokta olduğundan döngü son kez tekrar edilerek bitirilir.
Döngü sonDeğer-1 , noktasında sona erer ve sonDeğer 'i içermez!
|
İç içe iki for
döngüsü örneğine bakalım.
Kes break
ve Devam continue
Deyimleri
Kes(break
) deyimi while
ve for
döngülerinin acil çıkış kapısı gibidir: break
döngü gövdesinin sonundan komutlara ilerlemeyi sağlar. İşte break
deyimi ile bir örnek: inputun tüm satırlarını "END"
yazanı bulana kadar okuyacak.
continue
deyimi bir döngünün kalanını atlayıp, gövdeyi sonraki aşamadan devam ettirmemizi sağlar (buna sonraki tekrarlama "iteration" denir).
break
ve continue
deyimlerini birlikte kullandığımız görselleştirilmiş bir örnek. Sonucu tahmin edebilir misiniz?