Python While Döngüleri

While döngüleri, belirli bir koşul sağlandığı sürece kod bloğunu tekrar tekrar çalıştıran döngü yapılarıdır.

1. Temel While Döngüsü

# Basit while döngüsü
sayac = 0
while sayac < 5:
    print(sayac)
    sayac += 1

# Sonsuz döngü
while True:
    print("Sonsuz döngü")
    break  # Döngüyü kır

# While-else yapısı
sayac = 0
while sayac < 3:
    print(sayac)
    sayac += 1
else:
    print("Döngü bitti")

2. Break ve Continue

# Break kullanımı
sayac = 0
while True:
    if sayac >= 5:
        break
    print(sayac)
    sayac += 1

# Continue kullanımı
sayac = 0
while sayac < 5:
    sayac += 1
    if sayac == 3:
        continue
    print(sayac)

3. Sayaç Kontrollü Döngüler

# Geri sayım
sayac = 5
while sayac > 0:
    print(sayac)
    sayac -= 1
print("Başla!")

# İleri sayım
sayac = 1
while sayac <= 5:
    print(f"{sayac}. adım")
    sayac += 1

4. Koşullu Döngüler

# Kullanıcı girişi kontrolü
sifre = ""
while sifre != "1234":
    sifre = input("Şifre: ")
    if sifre != "1234":
        print("Yanlış şifre!")
print("Giriş başarılı!")

# Sayı tahmin oyunu
import random
hedef = random.randint(1, 100)
tahmin = 0
while tahmin != hedef:
    tahmin = int(input("Tahmin: "))
    if tahmin < hedef:
        print("Daha büyük")
    elif tahmin > hedef:
        print("Daha küçük")

5. İç İçe While Döngüleri

# Çarpım tablosu
i = 1
while i <= 10:
    j = 1
    while j <= 10:
        print(f"{i} x {j} = {i*j}")
        j += 1
    i += 1
    print("-" * 20)

# Yıldız deseni
satir = 1
while satir <= 5:
    sutun = 1
    while sutun <= satir:
        print("*", end="")
        sutun += 1
    print()
    satir += 1

Not: While döngülerinde sonsuz döngüye girmemek için sayaç değişkeninin güncellenmesi önemlidir.

6. While ile Liste İşlemleri

# Liste elemanlarını yazdırma
liste = [1, 2, 3, 4, 5]
i = 0
while i < len(liste):
    print(liste[i])
    i += 1

# Liste elemanlarını toplama
toplam = 0
i = 0
while i < len(liste):
    toplam += liste[i]
    i += 1
print(f"Toplam: {toplam}")

7. While ile String İşlemleri

# Metni ters çevirme
metin = "Python"
uzunluk = len(metin) - 1
ters = ""
while uzunluk >= 0:
    ters += metin[uzunluk]
    uzunluk -= 1
print(ters)

# Karakter sayma
metin = "Python Programlama"
harf = "a"
sayac = 0
i = 0
while i < len(metin):
    if metin[i] == harf:
        sayac += 1
    i += 1
print(f"'{harf}' harfi {sayac} kez geçiyor")

8. Pratik Örnekler

# Faktöriyel hesaplama
def faktoriyel(n):
    sonuc = 1
    while n > 0:
        sonuc *= n
        n -= 1
    return sonuc

# EBOB hesaplama
def ebob(a, b):
    while b:
        a, b = b, a % b
    return a

# ATM uygulaması
bakiye = 1000
while True:
    print("
1. Bakiye Sorgula")
    print("2. Para Çek")
    print("3. Para Yatır")
    print("4. Çıkış")
    secim = input("İşlem seçin: ")
    
    if secim == "1":
        print(f"Bakiye: {bakiye}")
    elif secim == "2":
        miktar = float(input("Miktar: "))
        if miktar <= bakiye:
            bakiye -= miktar
        else:
            print("Yetersiz bakiye!")
    elif secim == "3":
        miktar = float(input("Miktar: "))
        bakiye += miktar
    elif secim == "4":
        break

Alıştırmalar

  1. Kullanıcıdan alınan sayıların toplamını hesaplayan program yazın (0 girilene kadar)
  2. Bir sayının asal olup olmadığını kontrol eden program yazın
  3. Fibonacci serisinin ilk n terimini hesaplayan program yazın
  4. Sayı tahmin oyunu geliştirin (ipuçları ve deneme sayısı sınırı ekleyin)
  5. Basit bir hesap makinesi yapın (çıkış seçeneği ekleyin)