if, elif, else Yapıları ve Karar Mekanizmaları
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.
Koşul doğruysa (True) kod bloğu çalışır:
if koşul:
# Koşul True ise bu blok çalışır
# Girinti (4 boşluk) zorunludur!
yas = 20
if yas >= 18:
print("Reşitsiniz")
print("Oy kullanabilirsiniz")
print("Program devam ediyor...") # Her durumda çalışır
Koşul doğruysa bir blok, yanlışsa başka bir blok çalışır:
if koşul:
# Koşul True ise burası çalışır
else:
# Koşul False ise burası çalışır
n = int(input("Bir sayı girin: "))
if n % 2 == 0:
print("Çift sayı")
else:
print("Tek sayı")
sayi = float(input("Sayı: "))
if sayi >= 0:
print("Pozitif veya sıfır")
else:
print("Negatif")
Birden fazla koşulu kontrol etmek için elif (else if) kullanılır:
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
sayi = int(input("Bir sayı girin: "))
if sayi > 0:
print("Pozitif")
elif sayi < 0:
print("Negatif")
else:
print("Sıfır")
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)")
if blokları iç içe kullanılabilir:
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ı")
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")
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}")
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}")
# Üç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")
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}")
# 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)
# 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}")
Tek satırda if-else yazmak için kullanılır:
değer = sonuç1 if koşul else sonuç2
# 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
: unutmayın= atama, == karşılaştırmaand, or, not