Python if-else Kullanımı
Python programla dilinde belirli şartlarda belirli kodların çalışmasını if-else yani koşul yapısı ile
sağlamaktayız. Bu gibi durumlarda if (eğer) şartı sağlandığı durumlarda, else (Değilse) şartın sağlanmadığı
durumlara çalışacak kodları kullanırız.
Örnek:
1 2 3 4 | if True : print("istenilen şart sağlandı") else: print("İstenilen şart sağlanamdı.") |
Dikkat edilmesi gereken en önem husulardan biri if şartını sağlanması durumunda çalışacak kodların bir alt satırdan başlatarak bir tab içeri girip yazdık. Bu durum python da {} kod bloklarının kullanılmaması sebebiyle yapılmaktadır. İster bir tab içeri girin istersenin 4 adet boşluk bırakara içeri girin önemli olan boşlukların aynı uzunlukta bırakılmış olmasıdır. Tavsiye kodlama başından ya 4 der adet boşluklarla devam edin ya da tab butonuyla ilerleyin.
Yukarıdaki örnektede görüldüğü gibi if şartının sağlanması için True değerinin verilmesi gerekmektedir. Şimdi bir sayının 10’dan büyüklük veya küçüklük durmunu kontrol edecek bir koşul yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 | sayi=int(input("Lütfen bir sayı giriniz.\n")) #Kullanıcının girmiş olduğu sayıyı integer yaparak sayi değişkenine alıyoruz. if sayi>10 : #burada girilen sayının 10 dan büyük olup olmadığını sorguluyoruz. print("Girlen sayı ondan büyük.") #şart sağlandığında ekrana basılacak mesaj else: #şartın sağlamadığı durumlarda ne yapımasını gerektiğini değilse komutundan sonra gelen kot sıralamsında belirliyoruz. print("Girilen sayı ondan küçük.")#şartın sağlamadınğında basılacak mesaj ###################Ekran Çıktısı ########################### #Lütfen bir sayı giriniz. #11 #Girlen sayı ondan büyük. ###################Ekran Çıktısı ########################### |
Yukarıda şartın sağlandığında if kod satırının sonrasında bir tab içeriden başlayan kodlar çalışırken, şartın sağlmadığı durumlarda ise else kod satırı sonrasında bir tab içeriden başlayan kod blokları çalışacaktır.
Şimdi ise bazı sınama operatörlerinin ne alma geldiğiniz sizinla paylaşalım.
< | Küçüktür operatörü | |
> | Büyüktür operatörü | |
<= | Büyükeşit operatörü.Büyük veya eşitse | |
>= | Büyükeşit operatörü. Büyükse veya eşitse | |
== | Eşitse operatörü | |
!= | Eşit değilse operatörü |
Bir önceki örnekte kullanıcı 10 sayısını girdiğinde sayının ondan küçük olduğu mesaj ekrana verilmektedir. Peki eşitli durumunda oluşan kodları nasıl yazcağız?
Üçüncü ve daha çok şartın olduğu durmlarda ise elif kulanılmaktadır. Örnek bir uygulmayı aşağıda yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | sayi=int(input("Lütfen bir sayı giriniz.\n")) #Kullanıcının girmiş olduğu sayıyı integer yaparak sayi değişkenine alıyoruz. if sayi>10 : #burada girilen sayının 10 dan büyük olup olmadığını sorguluyoruz. print("Girlen sayı ondan büyük.") #şart sağlandığında ekrana basılacak mesaj elif sayi==10: print("Girlen sayı ona eşit") else: #şartın sağlamadığı durumlarda ne yapımasını gerektiğini değilse komutundan sonra gelen kot sıralamsında belirliyoruz. print("Girilen sayı ondan küçük.")#şartın sağlamadınğında basılacak mesaj ###################Ekran Çıktısı ########################### #Lütfen bir sayı giriniz. #10 #Girlen sayı ona eşit ###################Ekran Çıktısı ########################### |
İsterseniz şimdi birden çok şartın bulunduğu bir koşul bloğu yazalım. Örneğin şehir plaka kodları girildiğinde şehirin adını yazdıralım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | plaka=int(input("Lütfen 1'den 81'e kadar bir sayı giriniz \n")) if plaka==40: print("Kırşehir \n") print("Ozanlar Diyarı") elif plaka==6: print("Ankara \n") print("Segmenler Diyarı") elif plaka==25: print("Erzurum \n") print("Dadaşlar Diyarı") elif plaka==9: print("Aydın \n") print("Efeler Diyarı") else: print("Girilen sayıda bir plaka bulunamadı.") ###################Ekran Çıktısı ########################### #Lütfen 1'den 81'e kadar bir sayı giriniz #40 #Kırşehir # #Ozanlar Diyarı ###################Ekran Çıktısı ########################### |
Şimdi koşul bloğumuz biraz daha detaylandıralım. Pythonda iç içe koşul blokları oluştururken kodların birbirine girmemesi için girintilere dikkat edilmesi gerekmektedir. Şimdi öğrendiklerimze istinaden bir kullanıcı login kontrolü yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | kullaniciAdi=input("Lütfen Kullanıcı Adınızı Girniz. \n") sifresi=input("Lütfen Şifrenizi giriniz.\n") if kullaniciAdi=="caglarbostanci": if sifresi=="123.": print("\n Hoş geldin Çağlar Bostancı" ); else: print("\n Şifreniz hatalı") else: print("Kullanıcı adınız hatalı") ###################Ekran Çıktısı ########################### #Lütfen Kullanıcı Adınızı Girniz. #caglarbostanci #Lütfen Şifrenizi giriniz. #123. # #Hoş geldin Çağlar Bostancı ###################Ekran Çıktısı ########################### |
Koşul bloğu yazarken dikkat etmemiz gereken önemli konulardan biride if kodundan sonra gelen diğer şartları elif komutuyla birbirine bağlıyor olmanız eğer sonraki koşullarıda if ile başlatırsan hataya düşümüş olursunuz.
Örnek bir uygulama olarak sizinle Pythonda vucut kitle indeksi hesaplama programı yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | boy=float(input("Lütfen boyunuzu metre cinsinden giriniz. \n")) #kullanıcıdan boyunu float cinsinden değişkene aldık kilo=float(input("Lütfen ağırlığınızı kilogram cinsinden giriniz.\n")) #kullanıcıdan kilosunu float cinsinden değişkene aldık vki=kilo/(boy*boy) #Vucut kitle indeksini bulduk print("Vucut kitle indeksiniz {}".format(vki)) # Ekran kitle indeksini yazdırdık. #aşağıda kitle indeksine göre bulunuduğu grubu bulduk if vki<18.5: print("Zayıf kategorisinde yer alıyorsunuz.") elif vki>=18.5 and vki<=24.9: print("Normal kilo kategorsindesiniz.") elif vki>=25 and vki<=29.9: print("Fazla kilolu kategorisine giriyorsunuz.") elif vki>=30 and vki<=39.9: print("Obez kategorisinde yer alıyorsunuz.") else: print("Morbid obez (İleri derece obez) kategorisinde yer alıyorsunuz") ###################Ekran Çıktısı ########################### #Lütfen boyunuzu metre cinsinden giriniz. #1.80 #Lütfen ağırlığınızı kilogram cinsinden giriniz. #85 #Vucut kitle indeksiniz 26.234567901234566 #Fazla kilolu kategorisine giriyorsunuz. ###################Ekran Çıktısı ########################### |
Eğer isterseniz iki seçenekli kullanımlarda if değerini tek satırda yazabilirsiniz. Bu işlem bir çok yazılım dilinde mevcut ve Python’da ise aşağıdaki gibi yapılmaktadır.
1 2 3 4 5 6 7 | dogum=1988 durum="Yaşınız 18'den büyük" if (2022-dogum) >= 18 else "Yaşınız 18'den küçük" print(durum) #######Ekran Çıktısı######## #Yaşınız 18'den büyük ######################### |
Yukarıdaki işlemde kullınıcını doğum yılını bir değişkene atadık. Daha sonra durum
adılı değişkene if (2022-dogum) >= 18
karak işleminin True
gelmesi durumunda
ilk karakter dizisini atadık. Karar işlemi sonucu False
gelmesi durumunda else
değerinden sonra gelen karakter dizisini atadık.
Bu yapıyı birden çok karar içinde kullanabilirsiniz. Tabi bu şekilde yazım hata yapma olasılığını artırdığı için tavsiye etmem ama kullanmanız gerekiyorsa da aşağıdaki örneği inceleyelim
1 2 3 4 5 6 7 | sayi=5 print("sayi 5'den büyük" if sayi>5 else "Sayi 5'ten küçük" if sayi<5 else "sayi 5'e eşit") ########Ekran Çıktısı############# #sayi 5'e eşit ############################### |
Yukarıda yaptığımız örnekte ilk karakter yapımız sayi değişkeni içerisindeki değerin beşten büyük olup olmadığını kontrol ettik. Eğer sayi beşten büyük olsaydı ilk karakter dizimiz "sayi 5'den büyük"
ekrana basacaktı. Bu şartı sağlamadığında else
‘den sonra gelen ikinci karar yapısı çalışıyor. Burada ise sayının beşten küçük olup olmadığı sorgulanıyor. Sayı 5’ten küçük olursa "Sayi 5'ten küçük"
karakter
dizisini ekrana basacak. Buradaki şart sağlanmazsa "sayi 5'e eşit"
karakter dizisini ekrana basacak.