Skip to main content

Python Koşullu İfadeler Nasıl Yazılır

Giriş

Koşullu ifadeler her programlama dilinin bir parçasıdır.
Bu ifadeler sayesinde, programın o anki durumuna bağlı olarak kodun bazen çalışmasını, bazen de çalışmamasını sağlayabiliriz.

Bir programın her satırını yukarıdan aşağıya sırayla çalıştırdığımızda, aslında programdan belirli koşulları kontrol etmesini istemiyoruz.
Ama koşullu ifadeler kullanarak, programın belirli şartların sağlanıp sağlanmadığını kontrol etmesini ve buna göre ne yapacağını belirlemesini sağlayabiliriz.

Koşullu ifadeleri nerelerde kullanabileceğimize dair birkaç örneğe bakalım:

  • Eğer bir öğrenci sınavında %65’in üzerinde alırsa, geçti olarak bildir; aksi halde kaldı.
  • Eğer bir hesabında para varsa, faiz hesapla; yoksa ceza ücreti uygula.
  • Eğer 10 veya daha fazla portakal alırlarsa, %5 indirim uygula; daha az alırlarsa indirim yapma.

Koşulları değerlendirerek ve bu koşullara göre kod çalıştırarak, biz aslında koşullu kod yazmış oluruz.

Bu derste, Python programlama dilinde koşullu ifadelerin nasıl yazılacağını öğreneceğiz.

if İfadesi

Önce if ifadesiyle başlayalım.
if, bir koşulun doğru (True) ya da yanlış (False) olup olmadığını kontrol eder.
Koşul doğruysa ilgili kod çalışır, yanlışsa kod atlanır.

Basit bir metin editöründe yeni bir dosya aç ve aşağıdaki kodu yaz:

not_ortalama = 70

if not_ortalama >= 65:
print("Başarılı, geçti 🎉")

Bu kodda, not_ortalama değişkenine 70 değerini atadık.
Daha sonra if ifadesiyle bu değerin 65’ten büyük veya eşit olup olmadığını kontrol ettik (>=).
Eğer koşul sağlanırsa, program "Başarılı, geçti 🎉" mesajını ekrana yazdıracak.

Programı gecme-notu.py adıyla kaydet ve terminalden şu komutla çalıştır:

python gecme-notu.py
Output
Başarılı, geçti 🎉

Şimdi programın sonucunu değiştirelim.
Bunun için not_ortalama değişkeninin değerini 60 yapalım:

not_ortalama = 60

if not_ortalama >= 65:
print("Başarılı, geçti 🎉")

Bu kodu kaydedip çalıştırdığımızda hiçbir çıktı almayacağız çünkü koşul sağlanmadı ve programa başka bir durumda ne yapması gerektiğini söylemedik.

Bir başka örnek verelim: Bir banka hesabı bakiyesinin 0’ın altında olup olmadığını kontrol edelim.
Bunun için hesap.py adında bir dosya oluşturalım ve şu programı yazalım:

bakiye = -50

if bakiye < 0:
print("Hesap bakiyesi ekside..")

Programı şu komutla çalıştırdığımızda:

python3 hesap.py

Ekranda şu çıktıyı göreceğiz:

Hesap bakiyesi ekside..

Programda bakiye değişkenini -50 değeriyle başlattık.
Bu değer 0’dan küçük olduğu için, if bakiye < 0: koşulu sağlandı ve ekrana "Hesap bakiyesi ekside." mesajı yazdırıldı.

Eğer bakiyeyi 0 ya da pozitif bir sayıya değiştirirsek, koşul sağlanmadığı için program herhangi bir çıktı vermeyecektir.


else İfadesi

Çoğu durumda, if koşulu False olduğunda da programın bir şey yapmasını isteriz.
Örneğin, not örneğimizde, öğrencinin geçip geçmediğine göre mutlaka bir çıktı görmek isteriz.

Bunu yapmak için if koşuluna bir else ifadesi ekleriz. Yapısı şu şekildedir:

not_ortalama = 60

if not_ortalama >= 65:
print("Başarılı, geçti 🎉")
else:
print("Başarısız, kaldı ❌")

Yukarıdaki örnekte not_ortalama değişkeni 60 olduğu için if koşulu False döner.
Bu yüzden program "Başarılı, geçti 🎉" çıktısını vermez.
Ama eklediğimiz else bloğu, programın yine de bir şey yapmasını sağlar.

Programı kaydedip çalıştırdığımızda şu çıktıyı alırız:

Output
Başarısız, kaldı ❌

Eğer programda not_ortalama değerini 65 veya daha yüksek yaparsak, bu sefer "Başarılı, geçti 🎉" çıktısını alırız.

Aynı mantığı banka hesabı örneğine uygulayalım.
else ifadesi eklenmiş hali şöyle olur:

bakiye = 50

if bakiye < 0:
print("Hesap bakiyesi ekside..")
else:
print("Hesap bakiyesi artıda..")
Output
Hesap bakiyesi artıda..

Burada bakiye değişkeninin değerini pozitif bir sayıya ayarladık, bu yüzden else bloğu çalışarak "Hesap bakiyesi artıda.." mesajını yazdırdı.
Eğer değeri negatif yaparsak, bu sefer ilk if bloğu çalışacak ve "Hesap bakiyesi ekside.." mesajı görünecek.

if ifadesini bir else ifadesiyle birleştirdiğimizde, aslında iki parçalı bir koşullu ifade kurmuş oluyoruz.
Bu yapı, koşulun sağlanıp sağlanmadığına bakılmaksızın programın her durumda bir şey yapmasını sağlar.


elif (Else If) İfadesi

Şimdiye kadar koşullu ifadelerde sadece iki ihtimali (True ya da False) değerlendirdik.
Ama çoğu durumda programın iki değil, birden fazla olasılığı kontrol etmesini isteriz.

Bunun için else if yapısını kullanırız. Python’da bu elif olarak yazılır.

elif, tıpkı if gibi çalışır ama ek bir koşulu kontrol eder.
Yani sırayla farklı durumları değerlendirmemizi sağlar.

Banka hesabı programında üç farklı durum için üç ayrı çıktı almak isteyebiliriz:

  • Bakiye 0’ın altında
  • Bakiye 0’a eşit
  • Bakiye 0’ın üstünde

Bu durumda elif ifadesini, if ve else arasına yerleştirebiliriz:

bakiye = 0

if bakiye < 0:
print("Hesap bakiyesi ekside..")
elif bakiye == 0:
print("Hesap bakiyesi sıfır.")
else:
print("Hesap bakiyesi artıda..")

Artık programı çalıştırdığımızda üç farklı olasılık oluşabilir:

  • Eğer bakiye 0’a eşitse, elif bloğu çalışır → "Hesap bakiyesi sıfır.." çıktısını alırız.
  • Eğer bakiye pozitif bir sayıysa, else bloğu çalışır → "Hesap bakiyesi artıda.." çıktısını alırız.
  • Eğer bakiye negatifse, if bloğu çalışır → "Hesap bakiyesi ekside.." çıktısını alırız.

Peki ya üçten daha fazla olasılık olmasını istersek?
Bunu yapmak için birden fazla elif ifadesi yazabiliriz.

Örneğin gecme-notu.py programını tekrar yazalım ve sayısal notları harf notlarına çevirelim:

  • 90 ve üzeri → A
  • 80-89 → B
  • 70-79 → C
  • 65-69 → D
  • 64 ve altı → F

Bunu yapmak için 1 tane if, 3 tane elif ve 1 tane else ifadesi kullanacağız:

Önceki örnekte harf notlarını doğrudan yazdırıyorduk.
Şimdi kodu güncelleyip, her harf notunu açıklamalı string olarak yazdıralım.
else ifademiz aynı kalabilir:

not_ortalama = 72

if not_ortalama >= 90:
print("Tebrikler 🎉 Harf Notun: A (Mükemmel başarı!)")
elif not_ortalama >= 80:
print("Harf Notun: B (Gayet iyi, devam et )")
elif not_ortalama >= 70:
print("Harf Notun: C (Ortalama, biraz daha gayret )")
elif not_ortalama >= 65:
print("Harf Notun: D (Geçtin ama daha iyisini yapabilirsin )")
else:
print("Harf Notun: F (Başarısız , tekrar denemelisin)")

elif ifadeleri sırayla değerlendirildiği için kodumuz oldukça basit kalabiliyor.
Program şu adımları uyguluyor:

  • Eğer not 90’dan büyükse, program "A" notunu yazdırır. Eğer 90’dan küçükse, bir sonraki koşula geçer.
  • Eğer not 80 veya daha büyükse, "B" notunu yazdırır. Eğer 79 veya daha düşükse, bir sonraki koşula geçer.
  • Eğer not 70 veya daha büyükse, "C" notunu yazdırır. Eğer 69 veya daha düşükse, bir sonraki koşula geçer.
  • Eğer not 65 veya daha büyükse, "D" notunu yazdırır. Eğer 64 veya daha düşükse, son adıma geçer.
  • Yukarıdaki koşulların hiçbiri sağlanmazsa, program "F" (Başarısız) notunu yazdırır.

İç İçe (Nested) If İfadeleri

if, elif ve else ifadelerini rahatça kullanabiliyorsan, artık iç içe koşullu ifadelere geçebilirsin.
İç içe if yapıları, ilk koşul Doğru olduğunda ek bir koşul daha kontrol etmek istediğimiz durumlarda işe yarar.

Yani bir if-else bloğunun içinde başka bir if-else bloğu olabilir.

if ifade1:                   # dış if ifadesi
print("doğru")

if ic_ifade: # iç (nested) if ifadesi
print("evet")

else: # iç (nested) else ifadesi
print("hayır")

else: # dış else ifadesi
print("yanlış")

Bu koddan birkaç farklı çıktı elde edilebilir:

  • Eğer statement1 koşulu doğru (doğru) ise, program bu sefer nested_statement koşulunu değerlendirir.
  • Eğer her iki koşul da doğruysa, çıktı şu olur:
Output
doğru
evet

Eğer ifade1 doğru ise ama ic_ifade (nested_statement) yanlış dönerse, çıktı şu olur:

doğru
hayır

Eğer ifade1 False olursa, içteki if-else bloğu hiç çalışmaz.
Bu durumda yalnızca dıştaki else çalışır ve çıktı şu olur:

yanlış

Kodlarımızda birden fazla iç içe (nested) if ifadesi de kullanabiliriz.
Yani bir koşulun içinde başka koşullar, onların içinde de ek koşullar olabilir.

if ifade1:                       # dış if
print("merhaba dünya")

if ic_ifade1: # ilk iç if
print("evet")

elif ic_ifade2: # ilk iç elif
print("belki")

else: # ilk iç else
print("hayır")

elif ifade2: # dış elif
print("merhaba galaksi")

if ic_ifade3: # ikinci iç if
print("evet")

elif ic_ifade4: # ikinci iç elif
print("belki")

else: # ikinci iç else
print("hayır")

else: # dış else
print("merhaba evren")

Yukarıdaki örnekte her if bloğunun içinde bir iç if ifadesi de bulunuyor.
Bu da her koşulun içinde daha fazla seçenek kontrol etmemize imkân tanıyor.

Şimdi gecme-notu.py programımız üzerinden bir örnek yapalım:
Önce öğrencinin notunun geçip geçmediğini kontrol edeceğiz (>= 65).
Eğer geçtiyse, ardından hangi harf notuna denk geldiğini belirleyeceğiz.
Eğer geçmediyse, harf notlarını kontrol etmeye gerek yok; program doğrudan kaldı çıktısını verecek.

not_ortalama = 78

if not_ortalama >= 65: # geçme durumu
print("Geçti ✅")

if not_ortalama >= 90:
print("Harf Notu: A")
elif not_ortalama >= 80:
print("Harf Notu: B")
elif not_ortalama >= 70:
print("Harf Notu: C")
else:
print("Harf Notu: D")

else:
print("Başarısız ❌ - Harf Notu: F")

Eğer programı not_ortalama = 92 ile çalıştırırsak:

  • İlk koşul (>= 65) sağlanır → "Geçti ✅" yazdırılır.
  • Sonra >= 90 kontrol edilir → bu da sağlandığı için "Harf Notu: A" yazdırılır.

Eğer programı not_ortalama = 60 ile çalıştırırsak:

  • İlk koşul (>= 65) sağlanmaz → içteki if blokları atlanır.
  • Program doğrudan else bloğunu çalıştırır ve "Başarısız ❌ - Harf Notu: F" çıktısını verir.

Daha da ayrıntılandırmak istersek, ikinci katman iç içe if ekleyebiliriz.
Örneğin A+, A ve A- notlarını ayrı değerlendirmek için önce notun geçip geçmediğini, sonra 90 ve üzeri olup olmadığını, ardından da 96 üzerinde olup olmadığını kontrol edebiliriz:

not_ortalama = 97

if not_ortalama >= 65:
print("Geçti ✅")

if not_ortalama >= 90:
if not_ortalama > 96:
print("Harf Notu: A+ 🌟")
elif not_ortalama > 93:
print("Harf Notu: A")
else:
print("Harf Notu: A-")
elif not_ortalama >= 80:
print("Harf Notu: B")
elif not_ortalama >= 70:
print("Harf Notu: C")
else:
print("Harf Notu: D")

else:
print("Başarısız ❌ - Harf Notu: F")

Yukarıdaki kodda not_ortalama = 96 olduğunda program şu adımları izler:

  1. not_ortalama >= 65 kontrol edilir → True
    "Geçti ✅" yazdırılır.
  2. not_ortalama >= 90 kontrol edilir → True
  3. not_ortalama > 96 kontrol edilir → False
  4. not_ortalama > 93 ve <= 96 kontrol edilir → True
    "Harf Notu: A" yazdırılır.
  5. İç içe koşullar tamamlandığı için program kalan kodlarla devam eder.
Output
Geçti ✅
Harf Notu: A

İç içe (nested) if ifadeleri, koduna birden fazla ve daha özelleştirilmiş koşul ekleme fırsatı sunar.
Böylece farklı durumlar için daha detaylı kontroller yapabilir, programın çıktısını daha esnek ve anlamlı hale getirebilirsin.

Sonuç

if gibi koşullu ifadeleri kullanarak programının hangi kodları çalıştıracağını daha iyi kontrol edebilirsin.
Koşullu ifadeler, belirli bir koşulun sağlanıp sağlanmadığını kontrol eder:

  • Eğer koşul sağlanıyorsa, ilgili kod bloğu çalışır.
  • Eğer koşul sağlanmıyorsa, program diğer kodlara geçerek çalışmaya devam eder.

Koşullu ifadeleri daha iyi pekiştirmek için:

  • Farklı karşılaştırma operatörlerini dene.
  • and ve or gibi mantıksal operatörleri birleştirerek koşullar yaz.
  • Koşullu ifadeleri döngüler (for, while) ile birlikte kullan.