🔀 0.4: Koşullu İfadeler

if, elif, else Yapıları ve Karar Mekanizmaları

📖 Koşullu İfade Nedir?

Koşullu ifadeler, programın belirli koşullara göre farklı davranmasını sağlar. "Eğer şu olursa bunu yap, olmazsa şunu yap" mantığıyla çalışır.

🎯 Gerçek Hayat Örneği:
  • Hava yağmurluysa → Şemsiye al
  • Sınav notu 50'den büyükse → Geçtin
  • Yaşın 18'den büyükse → Oy kullanabilirsin

✅ 1. if Yapısı

Koşul doğruysa (True) kod bloğu çalışır:

📝 Sözdizimi

if koşul:
    # Koşul True ise bu blok çalışır
    # Girinti (4 boşluk) zorunludur!

📌 Basit if Örneği

yas = 20

if yas >= 18:
    print("Reşitsiniz")
    print("Oy kullanabilirsiniz")

print("Program devam ediyor...")  # Her durumda çalışır
flowchart TD A([BAŞLA]) --> B[yas = 20] B --> C{yas >= 18 ?} C -->|Evet| D[Reşitsiniz yazdır] D --> E[Program devam ediyor] C -->|Hayır| E E --> F([BİTİR])
⚠️ Python'da Girinti Önemlidir!
  • if bloğundaki kodlar 4 boşluk (veya 1 TAB) içeri girilmelidir
  • Girinti olmadan Python hata verir
  • Aynı bloktaki kodlar aynı hizada olmalıdır

↔️ 2. if-else Yapısı

Koşul doğruysa bir blok, yanlışsa başka bir blok çalışır:

📝 Sözdizimi

if koşul:
    # Koşul True ise burası çalışır
else:
    # Koşul False ise burası çalışır

📌 Tek mi Çift mi?

n = int(input("Bir sayı girin: "))

if n % 2 == 0:
    print("Çift sayı")
else:
    print("Tek sayı")
1. BAŞLA 2. n oku 3. EĞER n % 2 == 0 ise 4. "Çift" yazdır 5. DEĞİLSE 6. "Tek" yazdır 7. BİTİR
flowchart TD A([BAŞLA]) --> B[/n oku/] B --> C{n % 2 == 0 ?} C -->|Evet| D[/Çift yazdır/] C -->|Hayır| E[/Tek yazdır/] D --> F([BİTİR]) E --> F

📌 Pozitif / Negatif

sayi = float(input("Sayı: "))

if sayi >= 0:
    print("Pozitif veya sıfır")
else:
    print("Negatif")

🔀 3. if-elif-else Yapısı

Birden fazla koşulu kontrol etmek için elif (else if) kullanılır:

📝 Sözdizimi

if koşul1:
    # Koşul1 True ise
elif koşul2:
    # Koşul1 False, Koşul2 True ise
elif koşul3:
    # Koşul1 ve 2 False, Koşul3 True ise
else:
    # Hiçbiri True değilse

📌 Pozitif / Negatif / Sıfır

sayi = int(input("Bir sayı girin: "))

if sayi > 0:
    print("Pozitif")
elif sayi < 0:
    print("Negatif")
else:
    print("Sıfır")
1. BAŞLA 2. sayi oku 3. EĞER sayi > 0 ise 4. "Pozitif" yazdır 5. DEĞİLSE EĞER sayi < 0 ise 6. "Negatif" yazdır 7. DEĞİLSE 8. "Sıfır" yazdır 9. BİTİR
flowchart TD A([BAŞLA]) --> B[/sayi oku/] B --> C{sayi > 0 ?} C -->|Evet| D[/Pozitif yazdır/] C -->|Hayır| E{sayi < 0 ?} E -->|Evet| F[/Negatif yazdır/] E -->|Hayır| G[/Sıfır yazdır/] D --> H([BİTİR]) F --> H G --> H

📌 Not Değerlendirmesi

not_degeri = int(input("Notunuz: "))

if not_degeri >= 90:
    print("Harf Notu: AA")
elif not_degeri >= 80:
    print("Harf Notu: BA")
elif not_degeri >= 70:
    print("Harf Notu: BB")
elif not_degeri >= 60:
    print("Harf Notu: CB")
elif not_degeri >= 50:
    print("Harf Notu: CC")
else:
    print("Harf Notu: FF (Kaldınız)")

📦 4. İç İçe (Nested) if Yapıları

if blokları iç içe kullanılabilir:

📌 Doğal Sayı Kontrolü

sayi = int(input("Bir sayı girin: "))

if sayi > -10:
    if sayi >= 0:
        print("Doğal sayı")
    else:
        print("Doğal sayı değil")
else:
    print("Doğal sayı değil ve çok küçük sayı")

📌 İki Sayıdan Büyüğü

x = float(input("x: "))
y = float(input("y: "))

if x > y:
    print(f"Büyük olan: {x}")
elif y > x:
    print(f"Büyük olan: {y}")
else:
    print("İki sayı eşit")
1. BAŞLA 2. x, y oku 3. EĞER x > y ise 4. x yazdır 5. DEĞİLSE EĞER y > x ise 6. y yazdır 7. DEĞİLSE 8. "Eşit" yazdır 9. BİTİR
flowchart TD A([BAŞLA]) --> B[/x, y oku/] B --> C{x > y ?} C -->|Evet| D[/x yazdır/] C -->|Hayır| E{y > x ?} E -->|Evet| F[/y yazdır/] E -->|Hayır| G[/Eşit yazdır/] D --> H([BİTİR]) F --> H G --> H

🎯 5. Pratik Örnekler

📌 Örnek 1: Üç Sayıdan En Büyüğü

a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))

# Yöntem 1: İç içe if kullanarak
max_val = a
if b > max_val:
    max_val = b
if c > max_val:
    max_val = c

print(f"En büyük: {max_val}")
1. BAŞLA 2. a, b, c oku 3. max = a 4. EĞER b > max ise max = b 5. EĞER c > max ise max = c 6. max yazdır 7. BİTİR
flowchart TD A([BAŞLA]) --> B[/a, b, c oku/] B --> C[max = a] C --> D{b > max ?} D -->|Evet| E[max = b] D -->|Hayır| F{c > max ?} E --> F F -->|Evet| G[max = c] F -->|Hayır| H[/max yazdır/] G --> H H --> I([BİTİR])

📌 Örnek 2: Dört Sayıdan En Büyüğü

a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
d = float(input("d: "))

# Ternary operatör ile kısa yol
max1 = a if a > b else b
max2 = c if c > d else d
max_val = max1 if max1 > max2 else max2

print(f"En büyük: {max_val}")

📌 Örnek 3: Üçgen Geçerlilik Kontrolü

# Üçgenin var olabilmesi için:
# İki kenarın toplamı üçüncü kenardan büyük olmalı

a = float(input("1. kenar: "))
b = float(input("2. kenar: "))
c = float(input("3. kenar: "))

if a + b > c and a + c > b and b + c > a:
    print("Geçerli bir üçgen")
    
    # Üçgen türünü belirle
    if a == b == c:
        print("Eşkenar üçgen")
    elif a == b or b == c or a == c:
        print("İkizkenar üçgen")
    else:
        print("Çeşitkenar üçgen")
else:
    print("Geçerli bir üçgen değil")

📌 Örnek 4: Basit Hesap Makinesi

a = float(input("Birinci sayı: "))
b = float(input("İkinci sayı: "))
islem = input("İşlem (+, -, *, /): ")

if islem == "+":
    sonuc = a + b
elif islem == "-":
    sonuc = a - b
elif islem == "*":
    sonuc = a * b
elif islem == "/":
    if b != 0:
        sonuc = a / b
    else:
        sonuc = "Hata: Sıfıra bölme!"
else:
    sonuc = "Hata: Geçersiz işlem!"

print(f"Sonuç: {sonuc}")

📌 Örnek 5: Artık Yıl Kontrolü

# Artık yıl kuralları:
# 1. 4'e bölünmeli
# 2. 100'e bölünüyorsa, 400'e de bölünmeli

yil = int(input("Yıl: "))

if yil % 4 == 0:
    if yil % 100 == 0:
        if yil % 400 == 0:
            print(f"{yil} artık yıldır")
        else:
            print(f"{yil} artık yıl değildir")
    else:
        print(f"{yil} artık yıldır")
else:
    print(f"{yil} artık yıl değildir")

# Veya tek satırda:
# artik = (yil % 4 == 0) and (yil % 100 != 0 or yil % 400 == 0)

📌 Örnek 6: Sınav Geçme Kontrolü

# Geçme koşulları:
# 1. Ortalama >= 50
# 2. Final >= 50
# 3. Devamsızlık < 30%

vize = float(input("Vize notu: "))
final = float(input("Final notu: "))
devamsizlik = int(input("Devamsızlık yüzdesi: "))

ortalama = vize * 0.4 + final * 0.6

if devamsizlik >= 30:
    print("Devamsızlıktan kaldınız!")
elif final < 50:
    print("Final notu yetersiz!")
elif ortalama < 50:
    print(f"Ortalamanız yetersiz ({ortalama:.1f})")
else:
    print(f"Tebrikler! Geçtiniz. Ortalama: {ortalama:.1f}")

⚡ 6. Ternary (Üçlü) Operatör

Tek satırda if-else yazmak için kullanılır:

📝 Sözdizimi

değer = sonuç1 if koşul else sonuç2

📌 Ternary Örnekleri

# Tek mi çift mi?
n = 7
sonuc = "Çift" if n % 2 == 0 else "Tek"
print(sonuc)  # Tek

# İki sayıdan büyüğü
a, b = 10, 25
buyuk = a if a > b else b
print(f"Büyük olan: {buyuk}")  # 25

# Mutlak değer
sayi = -15
mutlak = sayi if sayi >= 0 else -sayi
print(f"|{sayi}| = {mutlak}")  # 15

# Not durumu
not_degeri = 65
durum = "Geçti" if not_degeri >= 50 else "Kaldı"
print(durum)  # Geçti

📋 Özet

Bu Derste Öğrendiklerimiz:
  1. if: Koşul True ise çalışır
  2. else: Koşul False ise çalışır
  3. elif: Birden fazla koşul kontrolü
  4. İç içe if: Karmaşık karar yapıları
  5. Ternary: Tek satırda if-else
🎯 Hatırlatmalar:
  • Girinti (4 boşluk) zorunludur
  • Koşuldan sonra : unutmayın
  • = atama, == karşılaştırma
  • Mantıksal operatörler: and, or, not