Python’daki if koşul ifadesi bir programda belirli bir algoritmanın gereksinimlerine göre belirli kodu çalıştırmak için kullanılan bir yapıdır. Bir if koşul ifadesi, bir test veya sınavdaki bir sorunun bir cevabının olası şıklarına benzer bir şekilde, belirli bir durumda belirli bir kodu çalıştırıp çalıştırmamak gerektiğini belirlemek için kullanılır. Basitçe söylemek gerekirse, if koşul ifadeleri, önceden belirli koşulların yerine getirildiğinde belirli kod bloklarını yürütmeyi mümkün kılar.
Örneğin, bir program, kullanıcının girdiği sayıyı test eder ve eğer sayı 5’ten büyükse, program “Sayı 5’ten büyüktür.” ifadesini yazdırır; aksi takdirde, program “Sayı 5’ten küçüktür veya eşittir.” ifadesini yazdırır. If koşul ifadeleri, bir programın belirli bir durumda belirli kodu yürütmesine veya bir işlemeni gerçekleştirmesine olanak tanır. Python’daki if koşul ifadeleri çok yönlü olduğu için, programcılar herhangi bir karmaşıklık düzeyinde koşullu davranışlar yaratabilirler.
if Statements
Python programlama dilinde, koşullu ifadelerle belirli koşulların başarılı olup olmadığını kontrol edebilirsiniz. Bu koşul ifadelerinden ilki “if” ifadesidir. “if” ifadesi, belirli bir koşulun doğru olup olmadığını kontrol eder ve eğer doğruysa, belirtilen kod bloğunu çalıştırır.
Örneğin, bir kullanıcının yaşını kontrol etmek istediğinizi varsayalım. Eğer kullanıcının yaşı 18’den büyükse, “hoş geldiniz” yazan bir mesaj görüntülenir. Bu senaryo, “if” ifadesi kullanarak aşağıdaki gibi bir kod bloğu ile gerçekleştirilebilir:
Kod | Açıklama |
---|---|
age = 20 if age > 18: print(“Hoş geldiniz”) |
Bu kod bloğu yaş değişkeninin 18’den büyük olup olmadığını kontrol eder. Eğer öyleyse, “Hoş geldiniz” yazan bir mesaj görüntülenir. |
Yukarıdaki kod bölümü, yaş değişkeninin 18’den büyük olup olmadığını kontrol eder. Eğer yaş değişkeni 18’den büyük ise, “Hoş geldiniz” yazan bir mesaj görüntülenir.
if…else Statements
Python’da, bir işlemi sadece belirli bir koşulun doğru olduğunda gerçekleştirmek istiyorsak, if…else ifadeleri kullanılır. İfadenin tamamı belirlenen koşula bağlıdır. Eğer belirtilen koşul doğruysa if bloğu çalıştırılır, eğer koşul yanlışsa else bloğu çalıştırılır.
Bu ifade ayrıca else if ya da kısa haliyle elif ifadesiyle de birleştirilebilir. Bu sayede kullanıcılar daha karmaşık koşullar ve sonuçlar elde edebilirler. Koşullu ifadeler, birçok programda sık sık kullanılır. Örneğin, bir kullanıcının yaşı 18’den büyükse bir siteye erişim sağlayabilirsiniz, aksi takdirde erişimi reddedebilirsiniz.
Kod | Sonuç |
---|---|
if x > 0: | x, 0’dan büyüktür |
else: | x, 0’dan küçüktür |
if x > 0: | x, 0’dan büyüktür |
elif x == 0: | x, 0’a eşittir |
else: | x, 0’dan küçüktür |
- Burada, ilk ifade, x’in 0’dan büyük olup olmadığını kontrol eder.
- Eğer doğruysa, ikinci satır “x, 0’dan büyüktür” yazısını çıktı olarak verecek.
- Eğer yanlışsa, else bloğu çalıştırılır ve “x, 0’dan küçüktür” yazısı verilir.
- İkinci kod bloğu, x’in 0’dan büyük olup olmadığını kontrol eder,
- Eğer doğruysa, “x, 0’dan büyüktür” yazısı verilir.
- Eğer x 0’a eşitse, elif bloğu “x, 0’a eşittir” yazısını verir.
- Son olarak, eğer hiçbiri doğru değilse, else bloğu “x, 0’dan küçüktür” yazısını verir.
if…elif…else Statements
if…elif…else ifadeleri, birbirini takip eden koşulların kontrol edildiği durumlarda kullanılır. Eğer bir if koşulu sağlanmazsa, devam eden elif koşulları ile kontrol edilebilir. En sonunda ise sağlanmayan bir koşulda ne yapılacağını belirlemek için else kullanılır.
if x < y: print("x, y'den küçüktür.")elif x == y: print("x ve y eşittir.")else: print("x, y'den büyüktür.")
Yukarıdaki örnekte, eğer x < y ise ilk koşul sağlanır. Eğer x == y ise, ikinci koşul sağlanır. Hiçbir koşul sağlanmazsa else koşulu çalışır.
Birden fazla elif koşulu kullanılabilir ve bu sayede daha fazla seçenek sunulabilir. Örnek olarak, bir sınav sonuçlarına göre notları belirleme işlemini gösterebiliriz.
if score >= 90: grade = ‘AA’elif score >= 80: grade = ‘BA’elif score >= 70: grade = ‘BB’elif score >= 60: grade = ‘CB’elif score >= 50: grade = ‘CC’else: grade = ‘FF’
Yukarıdaki örnekte, öğrencinin aldığı notlara yönelik farklı koşullar belirtilmiş ve bu koşullara göre öğrencinin notu atanmıştır. Eğer hiçbir koşul sağlanmazsa, son koşulu belirleyen else çalışacaktır.
if…elif…else ifadeleri, programların daha karmaşık akışlarının kontrolü için çok önemlidir ve programcılar için büyük bir kolaylık sağlar.
Nested if…else Statements
Python’da if-else ifadeleri, programlama temelleri arasında önemli bir yer tutar. İf ifadeleriyle yapabileceğimiz işlemler oldukça geniştir. Ancak bazı durumlarda tek bir if ifadesi yeterli olmaz ve daha karmaşık bir işlem yapmamız gerekebilir. İşte bu noktada, iç içe if-else ifadeleri devreye girer.İç içe if-else ifadeleri, bir if ifadesi doğru olduğunda bir diğer if ifadesine geçiş yapar. Bu şekilde, birden fazla koşulu aynı anda kontrol edebilirsiniz.Örneğin, bir mağaza sahibi, indirimleri müşterilerine farklı şekillerde sunabilir. Eğer ürünün fiyatı 50 TL altındaysa %10 indirim yapılacak, 50-100 TL arasındaysa %20 indirim yapılacak ve 100 TL üzerindeyse %30 indirim yapılacak. Bu durumda iç içe if-else ifadeleri kullanarak bu işlemi gerçekleştirebilirsiniz.
if fiyat < 50:
- %10 indirim yapılacak
else:
if fiyat < 100:
- %20 indirim yapılacak
else:
%30 indirim yapılacak
Bu örnek, iç içe if-else ifadelerinin nasıl kullanılabileceğini göstermektedir. Ancak, yazılım geliştirme sırasında iç içe if-else ifadelerini mümkün olan en az düzeyde kullanmak önemlidir. Çünkü bu ifadeler, programda karışıklığa neden olabilir ve kodun okunabilirliğini zorlaştırabilir.Sonuç olarak, Python’da iç içe if-else ifadeleri, birden fazla koşulu kontrol etmek için kullanışlı bir araçtır. Ancak, bu ifadelerin sıklıkla kullanımı yerine, kodun daha okunabilir hale getirilmesi için farklı yöntemler kullanılmalıdır.
Ternary if Statements
Ternary if ifadeleri, tek satırda bir koşul kontrolü yapmak için kullanılan kısaltılmış bir if yapıdır. Bu yapı, if ve else ifadelerinde kullanılan koşul operatörünün kısaltılmış halidir. Ternary if ifadesi, üç ana bölümden oluşur: koşul karşılaştırması, if bloğu ve else bloğu.
Koşul karşılaştırması, bir ifadenin doğruluğunu kontrol eder. İf bloğu, koşulun doğru olduğu durumda çalıştırılacak kodu içerir; else bloğu ise koşulun yanlış olduğu durumda çalıştırılacak kodu içerir.
Aşağıda, ternary if yapısının nasıl kullanıldığına dair bir örnek bulunmaktadır:
x = 5y = 10
# Ternary if yapısısonuc = “x, y’den büyüktür” if x > y else “x, y’den küçüktür veya eşittir”
print(sonuc)
Burada, x’in y’den büyük olup olmadığı kontrol edilir. Eğer doğruysa, “x, y’den büyüktür” değerini sonuç değişkenine atar. Aksi takdirde, “x, y’den küçüktür veya eşittir” değerini sonuç değişkenine atar.
Ternary if yapısı, kodun daha anlaşılır ve okunaklı hale getirilmesinde de özellikle yararlıdır. Ancak, çok karmaşık ifadelerde okunabilirliği azaltabilir. Bu nedenle, tek satırdakiler dışında daha karmaşık ifadelerde kullanımdan kaçınılmalıdır.
The pass Statement
Python’da pass ifadesi, hiçbir işlevi olmayan ancak Python dil yapısının bir parçası olan bir ifadedir. Bu ifade, bir şey yapmış gibi gözükmesine rağmen, hiçbir şey yapmaz ve sadece programda boş geçiştirilmesini sağlar. Kod bloklarında kullanılabilir ve bloğu boş geçiştirmek istediğinizde kullanılır.Bir örnek olarak, bir fonksiyon tanımladığımızda ve henüz içeriği yazmadıysak, geçici olarak bunu pass ifadesiyle doldurabiliriz. Bu, fonksiyonun çalışmasını engellemeden kodun geri kalanını düzenlememize olanak verir.Aşağıdaki örnek, bir oyunfonksiyonu, ama henüz oyuna dair fonksiyonlar yazmadığımız için içeriğini boş bırakmak üzere bir pass ifadesi kullanıyor:
def oyun(): pass
Bir diğer kullanım örneği de class yapısıdır. Class yapısında fonksiyonlar tanımlanacağı için sınıf oluşturulurken henüz içerik yazılmaması durumunda yine pass ifadesi kullanılabilir.
class Oyun: def oyna(self): pass
Pass ifadesi, yazım aşamasında olan programların parçalarını doldurmada da kullanılabilir ve hata almamızı engeller.
The assert Statement
Python’da assert ifadesi, bir şeyin doğru olduğunu varsaymak ve bunu kontrol etmek için kullanılır. Bir assert ifadesi, tanımlanan bir koşulun doğruluğunu kontrol eder ve yanlış olduğunda AssertionError hatası oluşturur. Bu, programı hemen durdurur ve hatanın kaynağına işaret eder.
assert ifadesi, programlama hatalarının olası nedenlerini hızlı bir şekilde belirlemenize olanak tanır. Bu, programın dolambaçlı yollarındaki türden küçük hataları tespit etmenize yardımcı olur. Böylece, daha büyük hataların oluşması önlenebilir.
assert ifadesinin genel yapısı “assert koşul” şeklindedir. Burada “koşul” doğru veya yanlış olabilecek bir şeydir. Eğer koşul doğru değilse, program AssertionError hatası verecektir.
Ayrıca, assert ifadesi, hataların tespit edilmesine yardımcı olan bir hata ayıklama aracı olarak da kullanılabilir. Kod bloklarının doğruluğunu kontrol etmek ve yazılımın doğru bir şekilde çalıştığından emin olmak için kullanılabilir. Ancak bu, hata ayıklama sırasında mümkün olan en az miktarda assert ifadesi kullanılması gerektiği anlamına gelir.
Sonuç olarak, assert ifadesi, bir programın doğruluğunu kontrol etmek ve hata ayıklama sırasında yardımcı olmak için kullanılabilir. Ancak, kullanımı gereksiz yere programın performansını etkileyebilir, bu nedenle programlama hatalarının hızlı bir şekilde belirlenmesi için tasarlanmıştır.
assert vs Exception Handling
Python’da hata ayıklama yaparken assert ifadesi veya exception handling kullanılabilmektedir. assert ifadesi, assert statement kullanılarak gerçekleştirilir ve bir şartın doğru olup olmadığını kontrol eder. Eğer şart yanlış ise program hemen durur ve AssertionError hatası verir.
Exception handling ise try-except blokları kullanarak gerçekleştirilir. Hata meydana geldiğinde program derhal kapatılmaz. Bunun yerine program belirlenen bir error handling kod bloğuna yönlendirilir. Hata türüne göre farklı kod blokları oluşturma imkanı sağlamaktadır.
assert ifadesinin avantajı daha hızlı çalışmasıdır, çünkü try-except bloklarının eklenmesine gerek yoktur. Hataların programın başında tespit edilmesi daha etkili bir hata ayıklama yöntemi olabilir. Ancak, bu yöntem sadece programcı tarafından tahmin edilen hataları yakalar, belirli kullanıcı hatalarını yakalamak için exception handling kullanılması daha uygun olabilir.
Bununla birlikte, assert ifadesinin kullanımı bazı durumlarda uygun olmaz. Özellikle, kütüphanelerde kullanılırken, hataların kullanıcıların doğru girdiğini varsayarak oluşan hatalar için exception handling daha mantıklı olabilir.
Sonuç olarak, assert ifadesi ve exception handling her ikisi de hata ayıklaması konusunda farklı yöntemler sunar. Programcılar, kullanımlarının tüm avantajlarını ve dezavantajlarını anlamalı ve uygulamanın gereksinimlerine uygun olanını seçmelidirler.