Python'da if, elif ve else, programın koşullara göre farklı kararlar vermesini sağlar. if ilk koşulu test eder, elif önceki koşullar sağlanmadığında alternatifleri sırayla kontrol eder, else ise hiçbir koşul karşılanmadığında çalışır.
Tek bir durumu kontrol etmek için yalnızca if kullanılabilir. Birden fazla alternatif varsa elif blokları eklenir, hiçbir koşulun karşılanmadığı durum için de else yazılır.
if, elif ve else Ne Zaman Kullanılır?
if, karar yapısının başlangıç noktasıdır ve ilk koşulu değerlendirir. Bu koşul yanlışsa sıradaki elif koşuluna geçilir. Hiçbir if veya elif koşulu doğru değilse else bloğu çalışır.
ifilk olasılığı,elifönceki olasılıklar gerçekleşmediğinde sıradaki alternatifi,elseise hiçbir koşul doğru olmadığında uygulanacak son yolu temsil eder.
Temel söz dizimi şu akışa sahiptir:
if koşul:
# koşul doğruysa çalışır
elif başka_kosul:
# ilk koşul yanlış, bu koşul doğruysa çalışır
else:
# yukarıdaki koşulların hiçbiri doğru değilse çalışır
Bu temel söz dizimini örneklerle pekiştirmek için ücretsiz Sıfırdan Temel Python video eğitimi içindeki başlangıç konularından yararlanabilirsin.
Aşağıdaki örnekte not değerine göre yalnızca uygun sonuç belirlenir:
notu = 72
if notu >= 85:
sonuc = "Pekiyi"
elif notu >= 50:
sonuc = "Geçti"
else:
sonuc = "Tekrar çalış"
print(sonuc)
Beklenen çıktı: Geçti
Karşılaştırma ve mantıksal operatörler koşulu nasıl kurar?

Koşullar, çoğunlukla bir değeri başka bir değerle karşılaştırarak oluşturulur. = atama yaparken == eşitlik kontrolü yapar. Aşağıdaki ifadelerin her biri doğru veya yanlış sonuç üretir:
puan == 70:puandeğeri 70'e eşitse doğrudur.puan != 70:puandeğeri 70'e eşit değilse doğrudur.puan > 70:puandeğeri 70'ten büyükse doğrudur.puan < 70:puandeğeri 70'ten küçükse doğrudur.puan >= 70:puandeğeri 70 veya daha büyükse doğrudur.puan <= 70:puandeğeri 70 veya daha küçükse doğrudur.
Birden fazla koşulu birleştirmek için and, or ve not kullanılır. Örnekte hava durumunun uygun ve zamanın elverişli olup olmadığı kontrol ediliyor:
hava_gunesli = True
saat_uygun = False
print(hava_gunesli and saat_uygun)
print(hava_gunesli or saat_uygun)
print(not saat_uygun)
Beklenen çıktı sırasıyla False, True ve True değerleridir. and ifadesinin doğru olması için iki koşulun da doğru olması gerekir; burada saat_uygun yanlış olduğu için sonuç yanlıştır. or için koşullardan en az birinin doğru olması yeterlidir; bu nedenle sonuç doğrudur. not ise sonucu tersine çevirir ve yanlış olan saat_uygun ifadesini doğru kabul eder.
Birden fazla koşul yazarken parantez kullanmak, hangi ifadelerin birlikte değerlendirildiğini açıkça gösterir. Örneğin (puan >= 50 and odev_tamam) or ek_sure_var ifadesinde ilk iki koşul bir grup olarak okunur. Değişken adlarını açıklayıcı seçmek ve çok uzun ifadeleri daha küçük parçalara ayırmak, koşulların anlaşılmasını kolaylaştırır.
Bu operatörleri kısa sorularla pekiştirmek için Python bilgi testini çözebilirsin.
Koşul sırası ve bağımsız if ile elif arasındaki fark nedir?

Python koşulları yukarıdan aşağıya değerlendirir. Bağımsız if ifadelerinde her koşul ayrı ayrı kontrol edilir ve birden fazla blok çalışabilir. if, elif ve else zincirinde ise ilk doğru koşul bulunduğunda zincir tamamlanır, diğer alternatifler değerlendirilmez.
Aynı puan değeriyle iki yapıyı karşılaştıralım:
puan = 85
if puan >= 50:
print("Geçti")
if puan >= 80:
print("Başarılı")
Beklenen çıktı:
Geçti
Başarılı
Burada iki if birbirinden bağımsızdır. 85 değeri her iki koşulu da sağladığı için iki mesaj yazdırılır.
puan = 85
if puan >= 80:
print("Başarılı")
elif puan >= 50:
print("Geçti")
else:
print("Tekrar çalış")
Beklenen çıktı:
Başarılı
Bu yapıda ilk koşul doğru olduğu için elif ve else bölümlerine geçilmez. Tek bir seçim yapılması gereken not değerlendirmesi, menü seçimi veya durum kontrolü gibi işlemlerde elif zinciri daha uygundur.
Koşulların sırası da sonucu değiştirir. Daha özel koşulu, daha genel koşuldan önce yazmalısın. Örneğin puan >= 50 koşulunu önce yazarsan 85 puan için bu koşul doğru olur ve puan >= 80 kontrolüne sıra gelmez. Bu nedenle yüksek puan gibi özel durumlar önce, daha geniş aralıklar sonra yazılır.
Temel koşul mantığını adım adım çalışmak için ücretsiz Sıfırdan Temel Python video eğitimi içindeki örneklerden yararlanabilirsin.
İç içe koşullar ve okunabilir kod nasıl yazılır?
İç içe if, ilk koşul sağlandıktan sonra ikinci bir karar verilmesi gerektiğinde kullanılır. Örneğin kullanıcı adı boş değilse şifreyi kontrol edebilirsin:
kullanici_adi = "ada"
sifre_dogru = True
if kullanici_adi:
if sifre_dogru:
print("Giriş başarılı")
else:
print("Şifre yanlış")
else:
print("Kullanıcı adı boş")
Beklenen çıktı:
Giriş başarılı
İç içe yapı kararın mantığını gösterir; ancak gereksiz derinleşen bloklar kodu takip etmeyi zorlaştırır. Aynı kontrolü farklı dallarda tekrar etmek, uzun and, or ve not zincirleri kurmak da benzer bir sorun oluşturur.
if kullanici_adi != "" and sifre != "" and aktif_mi and not engelli_mi:
print("Devam edebilirsin")
Bu koşul yerine anlamlı değişkenler kullanmak okunabilirliği artırabilir:
bilgiler_dolu = bool(kullanici_adi and sifre)
giris_uygun = bilgiler_dolu and aktif_mi and not engelli_mi
if giris_uygun:
print("Devam edebilirsin")
- Her iç içe
ifyeni ve gerekli bir karar mı veriyor? - Uzun koşullar anlamlı değişkenlere ayrıldı mı?
- Girintiler tutarlı mı?
- Her dalın amacı açıkça anlaşılabiliyor mu?
- Aynı kontrol tekrar ediyorsa ortak bir noktaya taşınabilir mi?
- Yapı büyüdüyse daha küçük fonksiyonlara bölmek daha anlaşılır olur mu?
Koşul yapısını kısa sorularla denemek için Python bilgi testi kullanılabilir.
Doğru yapıyı seçmek için karar ağacı ve örnek program
Koşul yapısını seçerken önce kararların birbiriyle ilişkisini belirle. Tek bir durumu kontrol ediyorsan if, birbirini dışlayan seçenekleri karşılaştırıyorsan if ve elif, hiçbir koşul karşılanmadığında bir sonuç vermek istiyorsan else kullanabilirsin.
- Kararların bağımsız olup olmadığını belirle: Birden fazla durum aynı anda gerçekleşebiliyorsa bağımsız
ifblokları kullanılır. - Alternatiflerin birbirini dışlayıp dışlamadığını kontrol et: Sadece bir seçeneğin çalışması gerekiyorsa
ifveelifzinciri daha uygundur. - Koşulları öncelik sırasına koy: Özellikle puan aralıklarında daha yüksek veya daha özel koşulları önce yaz.
- Varsayılan durumu değerlendir: Hiçbir koşul karşılanmadığında gösterilecek bir sonuç varsa zincirin sonuna
elseekle.
Aşağıdaki örnekte bir puan, koşul sırasına göre sınıflandırılıyor:
puan = 78
if puan >= 90:
derece = "A"
elif puan >= 70:
derece = "B"
elif puan >= 50:
derece = "C"
else:
derece = "Geliştirilmeli"
print(derece)
Beklenen çıktı B olur. Çünkü 78, 90 veya daha yüksek değildir. İkinci koşul olan 70 veya daha yüksek olma durumu doğrudur. Python bu dalı çalıştırdıktan sonra aynı zincirdeki diğer elif ve else bloklarını kontrol etmez.
Buradaki seçenekler birbirini dışladığı için elif kullanıldı. Örneğin bir öğrencinin hem sınava katılıp hem ödev teslim edip etmediğini ayrı ayrı kontrol etmek gerekseydi, bu kararlar bağımsız olduğundan iki ayrı if daha uygun olurdu. Koşul bilgini ölçmek için Python bilgi testini çözebilirsin.
Sık Sorulan Sorular
Python'da else kullanmak zorunlu mudur?
Hayır. Bir koşul doğru olduğunda işlem yapılması yeterliyse yalnızca if kullanılabilir. else, koşulların hiçbiri karşılanmadığında varsayılan bir sonuç vermek istediğinde eklenir.
Python'da if ve elif aynı anda çalışır mı?
Aynı if, elif, else zincirinde yalnızca ilk doğru dal çalışır. Ancak ayrı ayrı yazılmış bağımsız if koşullarının birden fazlası aynı çalıştırmada doğru olabilir.
Birden fazla bağımsız if yerine ne zaman elif kullanılmalıdır?
Koşullar aynı kararın alternatifleriyse ve yalnızca bir sonucun seçilmesi gerekiyorsa elif kullanılmalıdır. Her koşulun kendi işlemini yapması gerekiyorsa bağımsız if tercih edilir.
İç içe if yerine and, or ve not kullanmak daha mı uygundur?
Koşullar kısa ve aynı karara bağlıysa and, or ve not ifadeleri kodu sadeleştirebilir. İkinci kontrolün yapılması ilk koşulun sonucuna bağlıysa veya işlemler ayrışıyorsa iç içe if daha anlaşılır olabilir.
Koşulların bağımsız mı, yoksa tek bir alternatif zincirinin parçası mı olduğunu belirlemek, doğru Python yapısını seçmenin temelidir.