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
-
Python Temelleri Genel Tekrar
14:39:24 - 13/12/2025 -
Python Performans İpuçları
14:38:59 - 13/12/2025 -
Python’da Temiz Kod Yazma
14:38:28 - 13/12/2025 -
Python Mini Proje: Sayı Tahmin Oyunu
14:37:58 - 13/12/2025 -
Python Mini Proje: Hesap Makinesi
14:37:31 - 13/12/2025