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
- Kullanıcıdan alınan sayıların toplamını hesaplayan program yazın (0 girilene kadar)
- Bir sayının asal olup olmadığını kontrol eden program yazın
- Fibonacci serisinin ilk n terimini hesaplayan program yazın
- Sayı tahmin oyunu geliştirin (ipuçları ve deneme sayısı sınırı ekleyin)
- Basit bir hesap makinesi yapın (çıkış seçeneği ekleyin)