Kurs içeriği (4 / 7)
Python Temel Kurs · Ders 4 / 7
Döngüler
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:
fordöngüsünürange()fonksiyonuyla birlikte kullanabileceksiniz.- Koşul doğru olduğu sürece çalışan
whiledöngüleri yazabileceksiniz. breakvecontinueile döngünün akışını değiştirebileceksiniz.- 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
- Kolay:
fordöngüsüyle 20’den 0’a kadar ikişer ikişer geriye sayan bir program yazın. - 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.
- Zor: Kullanıcı
0girene kadar sayı isteyen birwhiledö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ıcontinueile atlayın.
Kendini Dene
range(5)kaç sayı üretir ve bu sayılar nelerdir?for i in range(2, 8, 2): print(i)ekrana hangi sayıları yazdırır?breakilecontinuearasındaki fark nedir?
Cevaplar
- 5 sayı üretir: 0, 1, 2, 3, 4.
- Alt alta 2, 4 ve 6 yazdırır. 8 dahil değildir.
breakdöngüyü tamamen bitirir;continueyalnızca o turu atlayıp döngüye devam eder.