Kurs içeriği (4 / 7)
  1. 1 Python’a Giriş ve Temel Kavramlar 40 dk
  2. 2 Değişkenler ve Veri Türleri 80 dk
  3. 3 Koşul İfadeleri 80 dk
  4. 4 Döngüler 80 dk
  5. 5 Listeler ve Temel Veri Yapıları 80 dk
  6. 6 Fonksiyonlar 80 dk
  7. 7 Basit Uygulama ve Mini Projeler 80 dk

Python Temel Kurs · Ders 4 / 7

Döngüler

Konu anlatımı ⏱ 80 dk

Aynı işi tekrar tekrar yazmak yerine bilgisayara tekrarlatmayı öğreniyoruz: range() ile for döngüsü, koşula bağlı while döngüsü ve döngüyü yöneten break ile continue komutları.

Bu derste

  • for döngüsünü range() fonksiyonuyla birlikte kullanır.
  • Koşul doğru olduğu sürece çalışan while döngüleri yazar.
  • break ve continue komutlarıyla döngünün akışını değiştirir.
  • Sonsuz döngünün nedenini açıklar ve bundan kaçınır.

Malzemeler

  • Bilgisayar
  • Python 3 ve Thonny
  • Çevrim içi Python editörü (alternatif)

Ekrana 1’den 100’e kadar sayıları yazdırmanız gerekse 100 satır print() mı yazardınız? Neyse ki gerek yok! Bilgisayarlar tekrar eden işlerde çok iyidir ve hiç sıkılmazlar. Bu derste tekrarlı işleri döngülerle yaptırmayı öğreneceğiz.

Dersin Amacı ve Kazanımlar

Bu dersin sonunda:

  1. for döngüsünü range() fonksiyonuyla birlikte kullanabileceksiniz.
  2. Koşul doğru olduğu sürece çalışan while döngüleri yazabileceksiniz.
  3. break ve continue ile döngünün akışını değiştirebileceksiniz.
  4. Sonsuz döngünün nedenini açıklayabilecek ve ondan kaçınabileceksiniz.

Gerekli Malzemeler

Malzeme Açıklama
Bilgisayar Windows, macOS veya Linux yüklü herhangi bir bilgisayar
Python 3 ve Thonny Bilgisayara kurulu Python 3 ve Thonny editörü (thonny.org)
Çevrim içi editör (alternatif) Kurulum yapılamıyorsa tarayıcıda çalışan bir Python editörü (ör. Programiz, Trinket)

for Döngüsü ve range()

for döngüsü, bir işi belirli sayıda tekrarlamak istediğimizde kullanılır. range() fonksiyonu ise döngüye hangi sayıları sırayla vereceğini söyler. Döngü her turda sıradaki sayıyı i değişkenine koyar ve girintili satırları çalıştırır.

  • range(4) → 0, 1, 2, 3 (0’dan başlar, 4 dahil değildir)
  • range(1, 6) → 1, 2, 3, 4, 5 (başlangıç dahil, bitiş dahil değil)
  • range(2, 11, 2) → 2, 4, 6, 8, 10 (üçüncü sayı artış miktarıdır)
  • range(10, 0, -3) → 10, 7, 4, 1 (artış negatifse geriye doğru sayar)

Örnek 1: range() ile Saymak

# range() fonksiyonunun farklı kullanımları
for i in range(1, 6):
    print("Sayı:", i)

for i in range(4):
    print(i, end=" ")       # end=" " alt satıra geçmeden yan yana yazar
print()

for i in range(2, 11, 2):
    print(i, end=" ")
print()

for i in range(10, 0, -3):
    print(i, end=" ")
print()

Beklenen çıktı:

Sayı: 1
Sayı: 2
Sayı: 3
Sayı: 4
Sayı: 5
0 1 2 3 
2 4 6 8 10 
10 7 4 1 

Örnek 2: Çarpım Tablosu

Döngülerle kullanıcıdan alınan bilgileri birleştirdiğimizde, kısa bir kodla uzun işler yapabiliriz. Sadece üç satırla tüm çarpım tablosunu yazdıralım:

# Çarpım tablosu
sayi = int(input("Hangi sayının çarpım tablosu? "))

for i in range(1, 11):
    print(sayi, "x", i, "=", sayi * i)

Örnek çalıştırma: (Kullanıcının klavyeden yazdığı değerler de çıktıda görünüyor: 7)

Hangi sayının çarpım tablosu? 7
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70

💡 İpucu

Döngüde kullandığınız i sıradan bir değişkendir; adını istediğiniz gibi koyabilirsiniz: for gun in range(1, 8):. Kodunuzu adım adım izlemek isterseniz Thonny’deki Debug (böcek simgesi) düğmesini kullanın. Değişkenlerin her turda nasıl değiştiğini kendi gözlerinizle görürsünüz.

while Döngüsü

while (olduğu sürece) döngüsü, koşul True olduğu sürece çalışmaya devam eder. Kaç kez tekrar edeceğini önceden bilmediğimiz durumlarda çok işe yarar; örneğin kullanıcı doğru şifreyi girene kadar beklemek gibi. Her turun başında koşul yeniden kontrol edilir; koşul False olunca döngü biter.

break ve continue

  • break: Döngüyü hemen bitirir ve döngüden sonraki satıra geçer.
  • continue: O turun geri kalanını atlar ve döngünün bir sonraki turuna geçer.

Örnek 3: Şifre Denemesi

Kullanıcıya 3 deneme hakkı veriyoruz. Doğru şifre girilirse break ile döngüden çıkıyoruz; yanlış girilirse kalan hakkını gösteriyoruz.

# Şifre denemesi: while ve break
dogru_sifre = "python123"
deneme = 0

while deneme < 3:
    sifre = input("Şifreyi gir: ")
    deneme = deneme + 1
    if sifre == dogru_sifre:
        print("Giriş başarılı!")
        break               # döngüden hemen çık
    print("Yanlış şifre. Kalan hakkın:", 3 - deneme)

print("Program sona erdi.")

Örnek çalıştırma: (Kullanıcının klavyeden yazdığı değerler de çıktıda görünüyor: abc123, python123)

Şifreyi gir: abc123
Yanlış şifre. Kalan hakkın: 2
Şifreyi gir: python123
Giriş başarılı!
Program sona erdi.

Kullanıcı ikinci denemede doğru şifreyi girdiği için döngü break ile erkenden bitti ve üçüncü hak hiç kullanılmadı.

Örnek 4: continue ile Atlama

# continue ile 3'ün katlarını atlama ve toplam bulma
toplam = 0
for i in range(1, 11):
    if i % 3 == 0:
        continue            # bu turu atla, sıradaki sayıya geç
    print(i, end=" ")
    toplam = toplam + i
print()
print("Yazdırılan sayıların toplamı:", toplam)

Beklenen çıktı:

1 2 4 5 7 8 10 
Yazdırılan sayıların toplamı: 37

3, 6 ve 9 sayılarında continue çalıştığı için bu sayılar ne yazdırıldı ne de toplama eklendi.

⚠️ Önemli Not

while döngüsünde koşulu değiştiren satırı unutursanız koşul hep True kalır ve döngü hiç bitmez. Buna sonsuz döngü denir. Örneğin Örnek 3’te deneme = deneme + 1 satırını silseydik, yanlış şifre giren kullanıcı sonsuza kadar sorulmaya devam ederdi. Programınız takılırsa Thonny’de kırmızı Stop düğmesine basın ya da Ctrl + C tuşlarını kullanın. Ayrıca range(1, 10) ifadesinin 10’u içermediğini, 9’da durduğunu unutmayın.

Sıra Sizde

  1. Kolay: for döngüsüyle 20’den 0’a kadar ikişer ikişer geriye sayan bir program yazın.
  2. Orta: Kullanıcıdan bir sayı alın ve 1’den o sayıya kadar olan tüm sayıların toplamını hesaplayın.
  3. Zor: Kullanıcı 0 girene kadar sayı isteyen bir while döngüsü yazın. Döngü bitince girilen sayıların toplamını ve kaç sayı girildiğini ekrana yazdırın. Negatif sayıları continue ile atlayın.

Kendini Dene

  1. range(5) kaç sayı üretir ve bu sayılar nelerdir?
  2. for i in range(2, 8, 2): print(i) ekrana hangi sayıları yazdırır?
  3. break ile continue arasındaki fark nedir?

Cevaplar

  1. 5 sayı üretir: 0, 1, 2, 3, 4.
  2. Alt alta 2, 4 ve 6 yazdırır. 8 dahil değildir.
  3. break döngüyü tamamen bitirir; continue yalnızca o turu atlayıp döngüye devam eder.