Bildiğiniz üzere koşul ifadeleri gerçekten çok işe yarayan yapılardır. Peki, bir durumun oluşturabileceği birden fazla olasılığı yönetebileceğimizi söyleseydim, ne derdiniz? Örneğin kullanıcıdan aldığımız num1 ve num2 isminde iki değişken olsun; yani kullanıcıdan iki sayı alacağız. Bu sayıların; birbirine eşit olması, num1'in num2'den büyük olması ve num1'in num2'den küçük olması olasılıkları vardır. İşte, bu olasılıkları 'if - elif - else' yapılarıyla kontrol etmeyi öğreneceğiz. Bu durumda aslında girdiği sayıların bu durumlarını kullanıcıya belirtebiliriz. Ne demek istediğimi birazdan tam olarak anlayacaksınız.
Önce 'if' ile başlayacağız. If, İngilizce'den gelir, bir koşul belirtir ve anlamı 'eğer'dir.

Yukarıda gördüğünüz üzere num1 ve num2 isminde iki değişkenim var ve bu iki değişkenin değeri birbirine eşit. Aşağı kısımda ise bir if yapısı görüyorsunuz. Her şeyden önce Syntax yapısına dikkat edelim.
if anahtar kelimesini girdikten sonra bir parantez açıyoruz ve koşulumuzu bu parantezin içerisine yazıyoruz. Bunu gerçekleştirdikten sonra bir tane 'iki nokta üst üste' koyuyoruz ve alt satıra giriyoruz. Bu noktada girintiye dikkat etmenizi istiyorum. ':' ifadesini yerleştirdikten ve Enter'a bastıktan sonra yazmaya, bir TAB boşluğu bırakarak devam etmemiz gerekiyor. Çünkü yazacaklarımız, if içerisinde bulunan koşulun sağlanması durumunda gerçekleşecek şeylerdir. Eğer if'in hizasında yazarsanız yazdığınız bu kodlar if koşulunun gerçekleşmesi durumunda çalışmayacaktır. VS Code ve diğer birçok editör bu girintiyi otomatik olarak sağlar ancak gerektiğinde bunu el ile yapmanız için bir TAB boşluğu kadar girinti olduğunu bilmeniz gerek.
Şimdi, koşulumuza bakalım. Aslında bu satırda şunu dedik: "Eğer num1'in değeri ile num2'nin değeri birbirine eşitse ekrana 'Bu sayılar birbirine eşittir.' yazdır." Bu noktada bunun çalışması, yani ekrana istediğimiz yazının yazdırılması gerekiyor çünkü gerçekten de ikisinin değeri birbirine eşit. Sağ taraftaki ekrana bakacak olursanız göreceksinizdir.
Peki, eşit olmadığında ne olacak? Bakalım.

Bakın, num2 değişkeninin değerini 21 yaptım. Yani artık num1 ile num2 eşit değil. Bu noktada kodu çalıştırdığımızda sağ tarafta da görebileceğiniz üzere herhangi bir çıktı gelmedi. Daha doğrusu çıktı geldi ama ekrana bir şey yazdırılmadı. Bunun sebebi, başka bir koşul tanımlamamış olmamızdır.
Genel olarak if yapıları bu şekilde çalışır. Şimdi, elif yapılarına bakacağız.
elif, 'else if' ifadesinin kısaltmasıdır. Başka programlama dillerinde elif komutunu direkt olarak else if olarak görebilirsiniz. 'Else' kelimesinin anlamı, 'yoksa?' anlamını taşır. Bu ikisini birleştirdiğimizde yani 'else if' kalıbının anlamı ise 'yoksa eğer...' şeklinde olacaktır. Burada biz, else if yazmak yerine elif yazıyoruz. Bu ifade, if'ten sonra gelmesi gereken bir ifadedir ancak zorunlu değildir. Zaten zorunlu olsaydı biraz önceki kodumuz çalışmazdı.
Aşağıdaki koda bakalım ve bir bütün olarak işlemeye çalışalım.

Kodumuz, 'elif (num1 < num2):' şeklinde. Gördüğünüz gibi syntax yapısı if ile aynı şekildedir. Burada söylediğimiz şey şudur: "Eğer num1, num2'den küçükse ekrana 'num1, num2'den küçüktür.' yazdır." Peki, bu koşul neye göre sağlanacak?
Python, ilk olarak if yapısının içindeki koşula bakacak. Eğer if yapısının koşulu sağlanmıyorsa aşağı inip bir 'elif' arayacak. elif koşuluna da baktığında eğer elif'in koşulu sağlanıyorsa bunu gerçekleştirecek, sağlamıyorsa gerçekleştirmeyecektir. Bu noktada eğer if'in koşulu sağlanırsa Python, elif'e hiç bakmayacaktır ve sadece if koşulunun gerektirdiği komutları yerine getirecektir.
Şimdi, else kısmına geçeceğiz. Anlamını biraz önce açıkladım ancak bu noktada bilmeniz gereken bir detay var. else komutu, herhangi bir koşul kabul etmez. Yani burada, if ve elif içerisine num1 ve num2 ile alakalı koşullar girdiğimiz gibi yapmıyoruz. Sadece 'else:' yazıyoruz ve aşağı iniyoruz. Peki, madem koşul yok; bu else ne yapıyor?
else komutu, if ve elif komutlarının koşullarının sağlanmadığı durumda devreye girecektir. Bu noktada else, if ve elif dışında kalan bütün koşulları, bütün olasılıkları kapsayacaktır. Ne demek istiyorum?

num1 değişkeninin değerini 30 olarak değiştirdim yani num2'den büyük olmasını sağladım. Sonrasında en aşağı gelecek şekilde bir 'else:' bloğu açtım. Dikkat ederseniz else kısmına 'num1 > num2' şeklinde herhangi bir koşul girmedim. Ancak koşulun sağlanması durumunda num1'in num2'den büyük olduğunu yazdırmasını istedim. else, bunu nasıl anlıyor?
Biraz önce bu iki sayı için toplamda üç adet olasılığımız olduğundan söz etmiştim. İlk olasılığımız, bu iki sayının eşit olma olasılığı idi ve bunu, if ile kontrol ettik. Sonrasında gelen olasılık ise num1'in, num2'den küçük olma olasılığı idi. Bunu da elif ile kontrol ettik. Bu durumda geri kalan tek olasılığımız; num1'in, num2'den büyük olma olasılığıdır. Başka herhangi bir olasılığımız kalmadığı için bunu direkt olarak else ile kontrol ettik çünkü else, geri kalan olasılıkların tümü için çalışacaktır.
Bu yapıyı ele aldığımızda Python, ilk olarak if koşuluna bakacaktır. if koşulu sağlanıyorsa gereklilikleri yerine getirecek ve if - elif - else bloğu kapanacaktır. Eğer if koşulu sağlanmıyorsa Python, elif koşuluna bakacaktır. Yine biraz önceki gibi eğer koşul sağlanıyorsa gereklilikler yerine getirilecek ve blok kapanacaktır. Eğer elif koşulu da sağlanamıyorsa son olarak else kısmına geçecek ve orayı gerçekleştirecektir.
Burada bilmeniz gereken bir durum var. if - elif - else blokları içerisinde yalnızca bir adet if ve bir adet else bloğu olabilir. Ancak elif bloğundan istediğiniz kadar yazabilirsiniz. elif, arada kalan ihtimalleri değerlendirdiği için ve arada birden fazla ihtimal olabileceği için böyle bir özellik vardır.
Yayınlanma Tarihi: 2022-10-24 20:40:24
Son Düzenleme Tarihi: 2022-10-27 16:18:07