Döngü nedir ve neden kullanılır?
Bilgisayarların insanlardan en üstün olduğu alan, aynı işlemi binlerce veya milyonlarca kez hiç yorulmadan, sıkılmadan ve sıfır hatayla tekrarlayabilmeleridir. Programlamada belirli bir kod bloğunun peş peşe çalıştırılmasını sağlayan yapılara döngü (loop) denir.
Örneğin ekrana 100 kez «Merhaba» yazdırmak istediğinizde 100 satır boyunca alt alta print("Merhaba") yazmazsınız. Bunun yerine iki satırlık bir döngü kurarak bilgisayara «bu işlemi 100 kez tekrarla» dersiniz.
KısayolDöngüler ameleliği bitirir: 100 satır elle yazmak yerine 2 satır döngü yazılır ve kontrol tek bir değişkende toplanır.
Python’da iki temel döngü türü bulunur: Belirli sayıda tekrar için kullanılan for döngüsü ve bir koşul doğru olduğu sürece devam eden while döngüsü.
for döngüsü ve range() fonksiyonu
for döngüsü, belirli bir sayı aralığında ya da bir veri kümesinin elemanları üzerinde sırayla gezinmek için kullanılır. Sayı üretmek için genellikle yerleşik range() fonksiyonundan yararlanılır.
range() fonksiyonuyla ilgili en önemli altın kural şudur: Bitiş değeri üretilen sayılara dahil değildir. Örneğin range(1, 5) yazdığınızda 1, 2, 3, 4 sayıları üretilir; 5 sayısı asla üretilmez.
| Kullanım biçimi | Örnek kod | Ürettiği sayılar | Açıklama |
|---|---|---|---|
| Tek parametre (bitiş) | range(4) | 0, 1, 2, 3 | 0’dan başlar, 4 adet sayı üretir (4 hariç) |
| İki parametre (başlangıç, bitiş) | range(2, 6) | 2, 3, 4, 5 | 2’den başlar, 6’ya kadar gider (6 hariç) |
| Üç parametre (başlangıç, bitiş, adım) | range(1, 10, 2) | 1, 3, 5, 7, 9 | 1’den başlar, 10’a kadar 2’şer 2’şer atlar |
| Geriye doğru adım | range(5, 0, -1) | 5, 4, 3, 2, 1 | 5’ten başlar, 0’a kadar 1’er eksilerek iner (0 hariç) |
Bitiş Kuralırange(başlangıç, bitiş) daima bitiş sayısının bir eksiğinde durur: range(1, 10) yazdığınızda son sayı 9’dur.
Örnek. Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?toplam = 0
for i in range(1, 4):
toplam = toplam + i
print(toplam)
- range(1, 4) dizisi 1, 2 ve 3 sayılarını üretir (4 dahil değildir).
- 1. tur: i = 1, toplam = 0 + 1 = 1.
- 2. tur: i = 2, toplam = 1 + 2 = 3.
- 3. tur: i = 3, toplam = 3 + 3 = 6.
- Döngü biter ve print(toplam) 6 değerini basar.
Cevap6
while döngüsü ve sayaç mantığı
while döngüsü, yanına yazılan koşul True olduğu sürece gövdesindeki kodları tekrar tekrar çalıştırır. Tekrar sayısının önceden kesin olarak bilinmediği durumlarda tercih edilir.
Bir while döngüsünün kontrollü çalışması için genellikle bir sayaç değişkeni tanımlanır ve döngünün her turunda bu sayaç artırılır ya da azaltılır.
Yeni başlayanların en büyük kâbusu sonsuz döngüdür (infinite loop). Eğer sayacı artırmayı unutursanız koşul sonsuza kadar True kalır; program kilitlenir ve bilgisayarınızın işlemcisi durmaksızın çalışır.
| Özellik | for döngüsü | while döngüsü |
|---|---|---|
| Kullanım amacı | Tekrar sayısı önceden belliyken | Tekrar bir koşula bağlıyken |
| Sayaç kontrolü | range() ile otomatik ilerler | Kod içinde elle güncellenmelidir (sayac += 1) |
| Sonsuz döngü riski | Çok düşüktür | Sayaç unutulursa çok yüksektir |
Kısayolwhile döngüsü yazdıktan hemen sonra içine sayaç artırma satırını (sayac += 1) ekleyin; unutursanız sonsuz döngüye girer.
Örnek. Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?sayi = 1
while sayi < 4:
print(sayi)
sayi += 1
- Başlangıç: sayi = 1. 1 < 4 True → ekrana 1 yazılır, sayi 2 olur.
- 2. tur: 2 < 4 True → ekrana 2 yazılır, sayi 3 olur.
- 3. tur: 3 < 4 True → ekrana 3 yazılır, sayi 4 olur.
- 4. tur: 4 < 4 False → döngü sona erer.
Cevap1
2
3
Döngüyü yönetmek: break ve continue
Bazen bir döngü henüz normal bitişine ulaşmadan özel bir durum gerçekleştiğinde döngüyü erkenden durdurmak veya belirli bir adımı atlamak isteriz. Bu kontrolü break ve continue komutları sağlar.
| Komut | İşlevi | Çalışma mekanizması |
|---|---|---|
break | Döngüyü anında kırar ve bitirir | Döngüden tamamen dışarı fırlar, döngü sonrasındaki ilk satıra geçer |
continue | Yalnızca o anki turu pas geçer | Turun kalan kodlarını atlar, derhal bir sonraki turun başına döner |
Kısayolbreak «hemen çık ve bitir» demektir; continue ise «bu turu boş ver, sonraki adıma geç» demektir.
Örnek. Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?for x in range(1, 6):
if x == 3:
continue
if x == 5:
break
print(x)
- x = 1: koşullar False, 1 basılır.
- x = 2: koşullar False, 2 basılır.
- x = 3: x == 3 True → continue çalışır, print atlanır ve x = 4’e geçilir.
- x = 4: koşullar False, 4 basılır.
- x = 5: x == 5 True → break çalışır, döngü tamamen biter.
Cevap1
2
4
Döngülerle temel algoritmalar
Döngüler gerçek hayatta genellikle filtreleme, sayma ve biriktirme (akümülasyon) işlemlerinde kullanılır.
- Toplam biriktirme: Döngü başlamadan önce
toplam = 0tanımlanır ve döngü içindetoplam += degerile toplanır. - Koşullu filtreleme: Döngü içinde
ifbloğu kullanılarak yalnızca belirli şartı sağlayan elemanlar (örneğin yalnızca çift sayılar) işlenir.
Örnek. Aşağıdaki kod çalıştırıldığında ekrana ne basılır?adet = 0
for n in range(1, 10):
if n % 3 == 0:
adet += 1
print(adet)
- range(1, 10) sayıları: 1, 2, 3, 4, 5, 6, 7, 8, 9.
- n % 3 == 0 şartını sağlayan (3’e bölünen) sayılar: 3, 6, 9.
- Bu sayılar için adet 1’er artırılır: toplam 3 sayı vardır.
- print(adet) ekrana 3 basar.
Cevap3
Testten önce bunları bil
- range(a, b) bitiş sayısını dahil etmez
range(1, 5) ifadesi 1, 2, 3, 4 sayılarını üretir; 5 dahil değildir. 5’i istiyorsanız range(1, 6) yazmalısınız.
- while döngüsünde sayacı artırmayı unutmayın
sayac += 1 gibi bir ilerleme satırı koymazsanız koşul hep True kalır ve sonsuz döngü oluşur.
- break döngüyü tamamen bitirir, continue ise o adımı atlar
break döngüden fırlatıp çıkarır; continue ise bir sonraki tura zıplatır.
- range() tek parametreyle 0’dan başlar
range(5) yazdığınızda ilk sayı 1 değil 0’dır (0, 1, 2, 3, 4).
Kendini dene
Cevaba dokun — neden öyle olduğunu birlikte görelim.
range(2, 7) fonksiyonu aşağıdaki sayı dizilerinden hangisini üretir?
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?sayac = 0
for i in range(4):
sayac += 2
print(sayac)
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?i = 5
while i > 2:
i -= 1
print(i)
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?for sayi in range(1, 10):
if sayi == 4:
break
print(sayi, end=" ")
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?toplam = 0
for x in [1, 2, 3, 4]:
if x % 2 != 0:
continue
toplam += x
print(toplam)
Bir while döngüsünün koşulu hiçbir zaman False olmuyorsa bu duruma ne ad verilir?
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?a = 0
for i in range(1, 5, 2):
a += i
print(a)
Python’da tek parametreli range(6) ifadesi toplam kaç adet sayı üretir ve ilk sayı kaçtır?
Aşağıdaki kod parçası çalıştırıldığında ekrana ne yazdırır?k = 10
while k < 10:
print("Çalıştı")
print("Bitti")
Bir döngünün o anki turunu atlayıp derhal bir sonraki turun başına geçmesini sağlayan Python komutu hangisidir?
Alıştırma bitti — –
Sıradaki konu: Fonksiyonlar.
0/10 · soru cevaplandı