Python Programlama Dili 2. Python’da Koşul ifadeleri Python’da koşullu durumların nasıl oluşturulacağını bu bölümde öğreneceğiz. Bu iş için kullanacağımız üç tane deyim var: if, else ve elif 2.1. if “If” deyimi yardımıyla Python’da koşula bağlı bir durumu belirtebiliyoruz. Kullanım şeklini anlayabilmek için bir örnek verelim: >>> if a == b: print "a ile b birbirine eşittir" Yukarıda yazdığımız kod şu anlama geliyor: “Eğer a değişkeninin değeri b değişkeninin değeriyle aynı ise, ekrana ‘a ile b birbirine eşittir,’ diye bir cümle yazdır.” Öncelikle girintilemeden bahsedelim. Dikkat ettiyseniz yukarıda yazdığımız yarım kod içinde print ile başlayan ifade, if ile başlayan ifadeye göre daha içeride. Bu durum, print ile başlayan ifadenin, if ile başlayan ifadeye ait bir alt-ifade olduğunu gösteriyor. Girintileme işlemini elle yapmanız gerekirse genel kural olarak klavyedeki TAB tuşuna bir kez basmalısınız. Şimdi yukarıda verdiğimiz yarım programı tamamlamaya çalışalım. Örnek 1: # -*- coding: cp1254 -*a = 23 b = 23 if a == b: print "a ile b birbirine eşittir." Örnek 2: # -*- coding: cp1254 -*parola = raw_input("Lütfen parolanızı giriniz: ") if parola == "python": print "Parola onaylandı! Programa hoş geldiniz!" Burada raw_input() fonksiyonunun değerini doğrudan “parola” adlı değişkene atıyoruz. 2.2. else else deyimi kısaca, if deyimiyle tanımlanan koşullu durumlar dışında kalan bütün durumları göstermek için kullanılır. Küçük bir örnek verelim: Örnek 1: # -*- coding: cp1254 -*isim = raw_input("Senin ismin ne?") if isim == "Ferhat": print "Ne güzel bir isim bu!" else: print isim, "adını pek sevmem!" Örnek 2: # -*- coding: cp1254 -*parola = raw_input("Lütfen parolanızı giriniz: ") if parola == "python": print "Parola onaylandı! Programa hoşgeldiniz!" else: print "Ne yazık ki, yanlış parola girdiniz!" 2.3. elif Eğer bir durumun gerçekleşmesi birden fazla koşula bağlıysa elif deyiminden faydalanıyoruz. Mesela: # -*- coding: cp1254 -*meyve = raw_input("Bir meyve adı yazınız: ") if meyve == "elma": print "elma bir meyvedir" elif meyve == "armut": print "armut bir meyvedir" else: print meyve, "bir meyve değildir!" Eğer bir durumun gerçekleşmesi birden fazla koşula bağlıysa birden fazla if deyimini art arda da kullanabiliriz. Örneğin: # -*- coding: cp1254 -*sayi = 100 if sayi == 100: print "sayi 100'dür" if sayi <= 150: print "sayi 150'den küçüktür" if sayi > 50: print "sayi 50'den büyüktür" if sayi <= 100: print "sayi 100'den küçüktür veya 100'e eşittir" Bu program çalıştırıldığında bütün olası sonuçlar listelenecektir. Yani çıktımız şöyle olacaktır: sayi sayi sayi sayi 100'dür 150'den küçüktür 50'den büyüktür 100'den küçüktür veya 100'e eşittir Eğer bu programı elif deyimini de kullanarak yazarsak sonuç şu olacaktır: Öncelikle kodumuzu görelim: # -*- coding: cp1254 -*sayi = 100 if sayi == 100: print "sayi 100'dür" elif sayi <= 150: print "sayi 150'den küçüktür" elif sayi > 50: print "sayi 50'den büyüktür" elif sayi <= 100: print "sayi 100'den küçüktür veya 100'e eşittir" Bu kodların çıktısı ise şöyle olacaktır: sayı 100'dür Gördüğünüz gibi programımızı elif deyimini kullanarak yazarsak Python belirtilen koşulu karşılayan ilk sonucu ekrana yazdıracak ve orada duracaktır. Buraya kadar Python’da pek çok şey öğrenmiş olduk. if, elif, else deyimlerini de öğrendiğimize göre artık çok basit bir hesap makinesi yazabiliriz: # -*- coding: cp1254 -*# bolme islemini daima ondalıklı yapmasi icin from __future__ import division secenek1 secenek2 secenek3 secenek4 print print print print = = = = "(1) "(2) "(3) "(4) toplama" çıkarma" çarpma" bölme" secenek1 secenek2 secenek3 secenek4 soru = raw_input("Yapılacak işlemin numarasını girin: ") if soru == sayi1 print sayi2 print if soru == sayi3 print sayi4 print if soru == sayi5 print sayi6 print if soru == sayi7 print sayi8 print "1": = input("Toplama için ilk sayıyı girin: ") sayi1 = input("Toplama için ikinci sayıyı girin: ") sayi1, "+", sayi2, ":", sayi1 + sayi2 "2": = input("Çıkarma için ilk sayıyı girin: ") sayi3 = input("Çıkarma için ikinci sayıyı girin: ") sayi3, "-", sayi4, ":", sayi3 - sayi4 "3": = input("Çarpma için ilk sayıyı girin: ") sayi5 = input("Çarpma için ikinci sayıyı girin: ") sayi5, "x", sayi6, ":", sayi5 * sayi6 "4": = input("Bölme için ilk sayıyı girin: ") sayi7 = input("Bölme için ikinci sayıyı girin: ") sayi7, "/", sayi8, ":", sayi7 / sayi8 2.4. Python’da Girintileme Sistemi Pek çok programlama dilinde girintileme bir tercih meselesidir. Bu dillerde yazdığınız kodlar girintilenmiş de olsa girintilenmemiş de olsa düzgün bir şekilde çalışacaktır. Mesela aşağıdaki C koduna bakalım: #include <stdio.h> int main() { int a = 1; if (a == 1) { printf("Merhaba!\\n"); return 0; } } Eğer istersek yukarıdaki kodları şöyle de yazabiliriz: #include <stdio.h> int main(){int a = 1;if (a == 1){printf("Merhaba!\\n");return 0;}} Yukarıda gösterilen her iki kod da derleyiciler (compiler) tarafından aynı şekilde okunup, başarıyla derlenecektir. Ancak Python’la ilgilenen herkesin çok iyi bildiği gibi, Python programlama dilinde girintileme basit bir üslup meselesi değildir. Yani yukarıdaki C kodlarının yaptığı işi Python’la yerine getirmek istersek şöyle bir kod yazmamız gerekir: a = 1 if a == 1: print "Elveda Zalim Dünya" Bu kodların sahip olduğu girintileme yapısı Python açısından büyük önem taşır. Örneğin yukarıdaki kodları şu şekilde yazamayız: a = 1 if a == 1: print "Elveda Zalim Dünya" Bu kodlar çalışma sırasında hata verecektir.