Resimlerde göreceğiniz gibi if ve elif arasındaki farkı çözümleyemedim. Yardımcı olur musunuz lütfen.
Yani demek istediğim if yerine elif koysamda sonuç değişmeyecekti.
elif
ifadesi kendisinden önce başlayan if
ifadesine bağlı olarak çalışır. if
ifadesi içerisindeki koşul doğru (true) ise elif
ifadesine bakılmaz. if
ifadesindeki koşul yanlış (false) ise bu sefer de elif
içindeki koşula bakılır.
if
den sonra yeniden bir if
ifadesi oluşturduğunuzda, bu iki ayrı ifadeler birbirinden bağımsız olarak değerlendirilir. Yani birinin true ya da false olmasının diğeri ile bir alakası yoktur.
Aşağıdaki iki örneği inceleyin, çalıştırıp sonuçlarını gözlemleyin.
x = 10
if (x==10):
print("1. koşula uygun")
elif (x<11):
print("2. koşula uygun")
x = 10
if (x==10):
print("1. koşula uygun")
if (x<11):
print("2. koşula uygun")
elif
i kişisel olarak kullanmıyorum. Ama öyle bir an geliyor ki “Bu niye hata verdi ki her şey kusursuz.” diyorum ve çözüm elif
kullanmak oluyor. Bir örnek vereyim:
if(sayı//4==0):
print(sayı//4)
if(sayı//2==0):
print(sayı//2)
else:
print(sayı)
Varsayalım senaryo olarak tek bir ifadenin yazdırılmasını istiyorum. İşte o zaman 2. if
yerine elif
kullanmam gerekir. Aksi takdirde 8 gibi bir sayı için iki tane ifade yazdırılıyor.
Bu örnek çok istediğimi yansıtmıyor daha iyisini bulursam buraya yazacağım.
if
: Eğer belirlediğim durum gerçekleşirse şunu yap.
elif
: If bloğu çalışmaz da şöyle bir şey olursa bunu yap
else
: Bu if ve elif bloklarının hiçbiri çalışmazsa şunu yap
elif
'i, else if
gibi düşünün. else deyimi koşulların hiçbiri sağlanmazsa çalışır.
else if
deyimi de if sağlanmazsa (else) ve eğer şöyle bir durum söz konusuysa (if) şunu yap demek oluyor.
Yani else
deyimi bütün if
ve elif
bloklarına bakıp hiçbir bloğun çalışmadığını görünce çalışıyor ya.
elif
deyimi de if
bloğuna bakıp if
bloğunun çalışmadığına karar verdiği zaman başka bir durum sorgulama aşamasına geçiyor ve eğer o durum sağlanırsa altındaki kodlar çalışıyor.
Yani elif
deyimi önce if'
in sağlanıp sağlanmadığına bakıyor. Eğer sağlanmamışsa kendisi yeni bir koşul tanımlıyor
Koşullu ifadeler if bloğuyla başlamalıdır diye de ekleyeyim son olarak. Bunun sebebini bu deyimlerin anlamlarından da görebiliriz zaten.
elif
, else if
demek. Eğer if
sağlanmazsa …
else
de bütün durumlar sağlanmazsa …
Gördüğün gibi bu elif
ve else
blokları da öncelikle if
'in varlığına bağlı.
x = 5
print(x==5)
#bu size True döndürür.
print(x>3)
# bu da size True döndürür.
Mesela:
x = 10
if x == 10:
print("if çalıştı")
if x > 5:
print("ikinci if çalıştı")
# bu kodların sonucunda iki if bloğu da çalışır. Çünkü ikisi de True döndürür.
ama elif ile yaparsak :
x = 10
if x == 10: # x değişkeni 10'a eşit ise ...
print("if çalıştı")
elif x > 5: # if bloğu çalışmadıysa "ve" x değişkeni 5'ten büyük ise ...
print("elif bloğu çalıştı")
# Burada, elif bloğu diyor ki : Eğer if sağlanmazsa (False ise) ben çalışacağım.
# Bu yüzden if koşulu True olduğu için ve dolayısıyla çalışacağı için elif bir şey yapmayacak
fark budur.
Daha ayrıntılı ve fazla bilgi için