Ana Sayfa · Akademi · Robotik ve Kodlama · Python Temelleri · For ve While Döngüleri

For ve While Döngüleri

for ve while döngüleriyle tekrarı; range, break ve continue kullanmayı öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Döngü, aynı işi tekrar tekrar yazmak yerine bilgisayara "şu kadar kez" veya "şu koşul doğru olduğu sürece" yap dememizi sağlayan yapıdır; Python'da bunun için for ve while kullanırız.

Üretilecek kanıt

Aşağıdaki üç görevi kendi bilgisayarında dene: for ve range kullanarak 1'den 20'ye kadar olan çift sayıları yazdır. (İpucu: range(2, 21, 2) .) Bir listeyi kendin oluştur: hayvanlar = ["kedi", "köpek", "kuş"] yaz ve for ile her hayvanı ekrana bastır. while kullanarak 10'dan geriye 1'e kadar say. Her turda değeri 1 azalt. İkinci görevin bir çözümü şöyle…

Kontrol tuzağı

Girintiyi unutmak Döngünün içindeki satırlar 4 boşluk içeride olmalı. Girinti yoksa Python IndentationError verir. range'in son sayıyı almadığını unutmak range(1, 10) 10'u içermez , 9'da durur. 1'den 10'a kadar için range(1, 11) yazmalısın. while'da sayacı artırmayı unutmak sayi = sayi + 1 gibi bir satır olmazsa koşul…

Sonraki bağlantı

Listeler ve Sözlükler: Verileri sıralı listelerde ve anahtar-değer çiftlerinde saklamayı ve döngülerle bu verileri işlemeyi öğreneceğiz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulKoşullar
İçerikStandart ders · 1.424 kelime
Son güncelleme

Bir cümlelik özet

Döngü, aynı işi tekrar tekrar yazmak yerine bilgisayara "şu kadar kez" veya "şu koşul doğru olduğu sürece" yap dememizi sağlayan yapıdır; Python'da bunun için for ve while kullanırız.

Neden önemli?

Bir programda 1'den 100'e kadar olan sayıları yazdırmak istediğini düşün. Her satırı tek tek print(1), print(2), print(3) diye yazmak hem çok uzun sürer hem de kolayca hata yaparsın. Döngüler tam da bu noktada işe yarar.

Scratch modülünde "10 kez tekrarla" bloğunu kullanmıştık. for ve while, aynı fikrin Python'daki karşılığıdır. Bir robotun sensörünü sürekli okumak, bir oyunda her kareyi çizmek ya da bir listedeki her ismi ekrana yazmak gibi işlerin hepsi döngüyle yapılır. Tekrar, programlamanın üç temel yapı taşından biriydi; bu derste onu gerçek koda çeviriyoruz.

for döngüsü: belli sayıda tekrar

for döngüsü, önceden bilinen bir sayıda ya da hazır bir dizinin üzerinde tekrar yapmak için kullanılır. Türkçesiyle: "her eleman için şunu yap."

range ile sayarak dönmek

range(...) fonksiyonu bize bir sayı dizisi üretir. range(5) ifadesi 0, 1, 2, 3, 4 sayılarını verir; yani 0'dan başlar ve 5'e ulaşmadan durur.

for i in range(5):
    print("Merhaba", i)

Bu kodun çıktısı:

Merhaba 0
Merhaba 1
Merhaba 2
Merhaba 3
Merhaba 4

Burada i bir sayaçtır ve her turda bir sonraki değeri alır. Dikkat: print satırı for satırından 4 boşluk içeride yazılmıştır. Bu girinti (indentation), o satırın döngünün içinde olduğunu Python'a söyler. Girintiyi silersen kod çalışmaz.

range üç türlü kullanılabilir:

Örnek: 1'den 10'a kadar toplam

Sayaç değerlerini bir değişkende biriktirebiliriz.

toplam = 0
for i in range(1, 11):
    toplam = toplam + i
print("Toplam:", toplam)

range(1, 11) bize 1'den 10'a kadar sayıları verir. Her turda i değerini toplama ekleriz. Program Toplam: 55 yazdırır.

Bir listenin üzerinde dönmek

for, sadece sayılarla değil, bir listenin her elemanıyla da çalışır. Liste konusunu sonraki derste ayrıntılı göreceğiz; şimdilik köşeli parantez içinde sıralanmış öğeler olarak düşün.

isimler = ["Ada", "Deniz", "Kaan"]
for isim in isimler:
    print("Sıradaki:", isim)

Bu kod listedeki her ismi tek tek ekrana yazar:

Sıradaki: Ada
Sıradaki: Deniz
Sıradaki: Kaan

Burada döngü değişkeni bir sayı değil, doğrudan listedeki öğedir. Kaç eleman varsa döngü o kadar kez döner; sayıyı bizim bilmemiz gerekmez.

while döngüsü: koşul doğru olduğu sürece

while döngüsü, bir koşul doğru kaldığı sürece tekrar eder. Kaç kez döneceğini önceden bilmediğimiz durumlarda kullanışlıdır. Koşullar dersinden hatırladığın if gibi bir koşul yazarız; fark, koşul doğru olduğu sürece işin tekrarlanmasıdır.

sayi = 1
while sayi <= 3:
    print("Sayı:", sayi)
    sayi = sayi + 1

Çıktısı:

Sayı: 1
Sayı: 2
Sayı: 3

Burada üç adım önemlidir: bir başlangıç değeri (sayi = 1), bir koşul (sayi <= 3) ve her turda değeri değiştiren bir satır (sayi = sayi + 1). Bu son satır olmazsa koşul hiç bozulmaz.

Örnek: 1'den 10'a kadar toplam (while ile)

Aynı toplama işlemini while ile de yapabiliriz. Böylece iki döngünün mantığını karşılaştırabilirsin.

toplam = 0
sayi = 1
while sayi <= 10:
    toplam = toplam + sayi
    sayi = sayi + 1
print("Toplam:", toplam)

Sonuç yine Toplam: 55. Aynı problemi hem for hem while ile çözdük. Sayı belliyse for genelde daha kısadır; koşula bağlı durup durmayacağını bilmiyorsan while daha uygundur.

break, continue ve sonsuz döngü

break: döngüyü hemen bitir

break, döngünün ortasında "yeter, çık" demek için kullanılır.

for i in range(1, 100):
    if i == 5:
        break
    print(i)

Bu kod 1, 2, 3, 4 yazdırır ve i 5 olunca döngüyü tamamen durdurur.

continue: bu turu atla

continue, o turun geri kalanını atlayıp bir sonraki tura geçer.

for i in range(1, 6):
    if i == 3:
        continue
    print(i)

Çıktı 1, 2, 4, 5 olur; 3 atlanır ama döngü devam eder.

Sonsuz döngü riski

Bir while döngüsünün koşulu hiçbir zaman bozulmazsa program hiç durmaz. Buna sonsuz döngü denir.

sayi = 1
while sayi <= 5:
    print(sayi)
    # sayi = sayi + 1 satırı unutulursa döngü hiç bitmez

Yukarıdaki kodda sayi hep 1 kaldığı için koşul her zaman doğru olur ve ekrana durmadan 1 yazılır. Programı durdurmak için terminalde Ctrl + C tuşlarına basabilirsin. while yazarken her zaman "bu koşul nasıl bozulacak?" diye sor.

Mini uygulama

Aşağıdaki üç görevi kendi bilgisayarında dene:

  1. for ve range kullanarak 1'den 20'ye kadar olan çift sayıları yazdır. (İpucu: range(2, 21, 2).)
  2. Bir listeyi kendin oluştur: hayvanlar = ["kedi", "köpek", "kuş"] yaz ve for ile her hayvanı ekrana bastır.
  3. while kullanarak 10'dan geriye 1'e kadar say. Her turda değeri 1 azalt.

İkinci görevin bir çözümü şöyle olabilir:

hayvanlar = ["kedi", "köpek", "kuş"]
for hayvan in hayvanlar:
    print(hayvan)

Kendi çözümünü çalıştırıp çıktının beklediğin gibi olup olmadığını kontrol et.

Uygulama laboratuvarı: For ve While Döngüleri

For ve While Döngüleri konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada for döngüsü: belli sayıda tekrar ile Örnek: 1'den 10'a kadar toplam arasındaki ilişkiyi kullanarak çalışan kısa bir Python 3 programı, örnek girdiler ve beklenen çıktılar hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: günlük ders programını kontrol eden komut satırı aracı. Dersin ana hedefi “for ve while döngüleriyle tekrarı; range, break ve continue kullanmayı öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“For ve While Döngüleri” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın günlük ders programını kontrol eden komut satırı aracı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, for döngüsü: belli sayıda tekrar ve Örnek: 1'den 10'a kadar toplam ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Girintiyi unutmak

Döngünün içindeki satırlar 4 boşluk içeride olmalı. Girinti yoksa Python IndentationError verir.

range'in son sayıyı almadığını unutmak

range(1, 10) 10'u içermez, 9'da durur. 1'den 10'a kadar için range(1, 11) yazmalısın.

while'da sayacı artırmayı unutmak

sayi = sayi + 1 gibi bir satır olmazsa koşul hiç değişmez ve sonsuz döngü oluşur.

for ve while'ı karıştırmak

Kaç kez döneceğin belliyse for daha nettir. Bir koşula bağlı olarak durması gerekiyorsa while daha uygundur.

Güvenlik notu

Bu ders tamamen kendi bilgisayarında çalışan Python koduyla ilgilidir. Yalnızca kendi yazdığın veya güvendiğin kodları çalıştır; internetten kopyaladığın bir kodu anlamadan çalıştırma. Bir program yanıt vermez hâle gelirse (örneğin sonsuz döngüye girerse) Ctrl + C ile güvenle durdurabilirsin. Kişisel bilgilerini kodun içine yazma.

Ders özeti

Kontrol soruları

  1. range(3) hangi sayıları üretir?
  2. for i in range(1, 6): döngüsü kaç kez döner?
  3. Bir while döngüsünün sonsuza girmemesi için kodda ne bulunmalıdır?
  4. break ile continue arasındaki fark nedir?
  5. ["mavi", "yeşil"] listesini for ile yazdıran kısa bir kod yaz.

Cevaplar

  1. 0, 1 ve 2 sayılarını üretir. range sıfırdan başlar ve 3'e ulaşmadan durur.
  2. 5 kez döner: i sırayla 1, 2, 3, 4, 5 değerlerini alır (range(1, 6) 6'yı içermez).
  3. Koşulu er geç bozacak bir satır bulunmalıdır; örneğin her turda sayacı değiştiren sayi = sayi + 1.
  4. break döngünün tamamını hemen durdurur; continue yalnızca o anki turun geri kalanını atlayıp bir sonraki tura geçer.
  5. Örnek çözüm:
renkler = ["mavi", "yeşil"]
for renk in renkler:
    print(renk)

Kaynak ve doğrulama notu

“For ve While Döngüleri” dersi için doğrulama odağı for döngüsü: belli sayıda tekrar ile Örnek: 1'den 10'a kadar toplam arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Kod örnekleri Python 3 sözdizimi esas alınarak hazırlanmıştır. Çalıştırma ortamına göre küçük farklar görülebileceği için örnekler önce güvenli bir çevrim içi editörde veya yerel geliştirme ortamında denenmelidir.

Sonraki ders

Listeler ve Sözlükler: Verileri sıralı listelerde ve anahtar-değer çiftlerinde saklamayı ve döngülerle bu verileri işlemeyi öğreneceğiz.

Quiz’i BaşlatPython Temelleri bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.