Python Mantıksal Operatörler

Python’da and, or ve not mantıksal operatörleri ile birden fazla koşulu birlikte kontrol etmeyi öğrenin.

Python'da `and`, `or`, `not` operatörleri, programlarınızda mantıksal koşulları birleştirmek veya tersine çevirmek için kullanılan temel mantıksal operatörlerdir. Genellikle `if` döngülerinde, `while` döngülerinde veya genel boolean ifadelerde kullanılırlar. Bu operatörlerin önemli bir özelliği, Python'ın "truthiness" (doğruluk) kavramıdır. Yani, bazı değerler (örneğin boş olmayan dizeler, sıfırdan farklı sayılar) mantıksal olarak `True` kabul edilirken, diğerleri (örneğin boş dizeler, `0`, `None`, boş listeler/sözlükler) `False` kabul edilir. Ayrıca, `and` ve `or` operatörleri "kısa devre değerlendirmesi" (short-circuit evaluation) yaparlar, bu da performansı artırabilir ve bazen istenmeyen yan etkileri önleyebilir. Şimdi her birini detaylı inceleyelim: --- ### 1. `and` Operatörü `and` operatörü, her iki koşulun da doğru (True) olması durumunda `True` döndürür. Aksi takdirde `False` döndürür. **Davranışı:** * `koşul1 and koşul2` * Eğer `koşul1` **yanlış (False)** ise, `koşul2`'ye bakılmaz bile ve direkt `koşul1`'in değeri (veya boolean karşılığı) döndürülür. Bu `False`'a eşdeğerdir. * Eğer `koşul1` **doğru (True)** ise, `koşul2` değerlendirilir ve `koşul2`'nin değeri (veya boolean karşılığı) döndürülür. **Örnekler:** ```python # Sadece iki True durumda True döner print(True and True) # Çıktı: True print(True and False) # Çıktı: False print(False and True) # Çıktı: False print(False and False) # Çıktı: False yas = 25 ehliyet_varmi = True if yas >= 18 and ehliyet_varmi: print("Araba kullanabilir.") else: print("Araba kullanamaz.") # Çıktı: Araba kullanabilir. # İlk koşul False olduğu için ikinci koşul değerlendirilmez (kısa devre) # ve 'False' döndürülür print(False and "Bu mesaj görünmez") # Çıktı: False # Truthiness ile kullanım: print(1 and 0) # Çıktı: 0 (1 True, 0 False olduğu için 0 döner) print(5 and 10) # Çıktı: 10 (5 True, 10 True olduğu için son True değeri olan 10 döner) print("hello" and "") # Çıktı: '' ("hello" True, "" False olduğu için "" döner) print("" and "world") # Çıktı: '' ("" False olduğu için hemen "" döner, "world" değerlendirilmez) ``` --- ### 2. `or` Operatörü `or` operatörü, koşullardan **en az birinin** doğru (True) olması durumunda `True` döndürür. Her iki koşul da yanlış (False) ise `False` döndürür. **Davranışı:** * `koşul1 or koşul2` * Eğer `koşul1` **doğru (True)** ise, `koşul2`'ye bakılmaz bile ve direkt `koşul1`'in değeri (veya boolean karşılığı) döndürülür. Bu `True`'ya eşdeğerdir. * Eğer `koşul1` **yanlış (False)** ise, `koşul2` değerlendirilir ve `koşul2`'nin değeri (veya boolean karşılığı) döndürülür. **Örnekler:** ```python # En az bir True durumda True döner print(True or True) # Çıktı: True print(True or False) # Çıktı: True print(False or True) # Çıktı: True print(False or False) # Çıktı: False hava_yagmurlu = False hava_soguk = True if hava_yagmurlu or hava_soguk: print("Şemsiye veya ceket almayı unutma!") else: print("Hava güzel, dışarı çıkabilirsin.") # Çıktı: Şemsiye veya ceket almayı unutma! # İlk koşul True olduğu için ikinci koşul değerlendirilmez (kısa devre) # ve 'True' döndürülür print(True or "Bu mesaj görünmez") # Çıktı: True # Truthiness ile kullanım: print(1 or 0) # Çıktı: 1 (1 True olduğu için hemen 1 döner) print(0 or 10) # Çıktı: 10 (0 False, 10 True olduğu için 10 döner) print("" or "hello") # Çıktı: hello ("" False, "hello" True olduğu için "hello" döner) print("" or 0) # Çıktı: 0 ("" False, 0 False olduğu için son False değeri olan 0 döner) ``` --- ### 3. `not` Operatörü `not` operatörü, bir boolean ifadenin veya değerin mantıksal tersini alır. Sadece bir operand alır. **Davranışı:** * `not koşul` * `True` ise `False` yapar. * `False` ise `True` yapar. * Non-boolean bir değerle kullanıldığında, önce o değerin truthiness'ini (doğruluk değerini) alır, sonra onu tersine çevirir. **Örnekler:** ```python print(not True) # Çıktı: False print(not False) # Çıktı: True is_active = True print(not is_active) # Çıktı: False has_permission = False if not has_permission: print("Erişim reddedildi.") # Çıktı: Erişim reddedildi. # Truthiness ile kullanım: print(not 0) # Çıktı: True (0, False kabul edildiği için tersi True olur) print(not 1) # Çıktı: False (1, True kabul edildiği için tersi False olur) print(not "") # Çıktı: True ("" (boş dize), False kabul edildiği için tersi True olur) print(not "hello") # Çıktı: False ("hello", True kabul edildiği için tersi False olur) print(not None) # Çıktı: True (None, False kabul edildiği için tersi True olur) ``` --- ### Operatör Önceliği (Precedence) Bu operatörlerin belirli bir önceliği vardır: 1. `not` (en yüksek öncelik) 2. `and` 3. `or` (en düşük öncelik) Bu, bir ifadede birden fazla operatör olduğunda hangi işlemin önce yapılacağını belirler. Parantezler `()` kullanarak varsayılan önceliği değiştirebilirsiniz. **Örnek:** ```python # not önceliklidir, sonra and, sonra or print(True or False and not False) # Önce not False -> True # Sonra False and True -> False # Sonra True or False -> True # Çıktı: True print((True or False) and not False) # Önce (True or False) -> True # Sonra not False -> True # Sonra True and True -> True # Çıktı: True ``` Python'daki `and`, `or`, `not` operatörleri, programlarınızda karmaşık mantıksal kararlar almanızı sağlayan temel araçlardır. Truthiness ve kısa devre değerlendirmesi, bu operatörleri daha esnek ve bazen daha verimli kılar.
Son Paylaşımlar
Kategoriler