Menu
Coddy logo textTech

Mantıksal Operatörler Bölüm 4

Coddy'nin Python Journey'sinin Fundamentals bölümünün bir parçası. Ders 19 / 77.

Mantıksal ifadelerle çalışırken, bazen bunları basitleştirmemiz veya yeniden düzenlememiz gerekir. Bu durum, özellikle birden fazla and ve or operatörünü birleştiren karmaşık koşullarla çalışırken kullanışlıdır.

De Morgan Laws (De Morgan Yasaları), mantıksal ifadeleri dönüştürmek için kurallar sağlar. Bu dönüşümler kodun daha okunabilir ve anlaşılmasını daha kolay hale getirmeye yardımcı olur.

Birinci Yasa: not (A and B) ifadesi (not A) or (not B) ile aynıdır

not ifadesini parantez içine dağıttığınızda iki şeyin gerçekleştiğine dikkat edin: her bir operand değillenir (A ifadesi not A olur, B ifadesi not B olur) ve operatör tersine dönerand operatörü or haline gelir. not sadece değerleri değillemekle kalmaz; also aralarındaki bağlayıcı operatörü de değiştirir.

Örneğin:

# Bir sayının 1 ile 10 arasında olmadığını kontrol edelim
number = 15

# Bu iki ifade eşdeğerdir:
result1 = not (number >= 1 and number <= 10)
result2 = (not number >= 1) or (not number <= 10)

print(result1)  # True
print(result2)  # True

İkinci Yasa: not (A or B) ifadesi (not A) and (not B) ile aynıdır

Aynı iki adımlı kural burada da geçerlidir: her operandın olumsuzu alınır ve operatör tersine döner — bu kez or, and haline gelir. Bunu şöyle düşünebilirsiniz: not ifadesini dağıtmak, her bir parçanın olumsuzunu alırken her zaman andor arasında geçiş yapar.

Örneğin:

# Bir kişinin (öğrenci veya çalışan) OLMADIĞINI kontrol etme
is_student = False
is_employed = False

# Bu iki ifade eşdeğerdir:
result1 = not (is_student or is_employed)
result2 = (not is_student) and (not is_employed)

print(result1)  # True
print(result2)  # True

Hem AND Hem de OR İçeren Karmaşık Örnek: Bazen her iki operatörü de birleştiren koşullara ihtiyaç duyarsınız. İşte pratik bir örnek:

# Bir iş başvurusunu KABUL EDEMEYECEĞİMİZİ kontrol etme
# Şu durumda reddederiz: (deneyim yok AND diploma yok) OR yaş şartını karşılamıyor

has_experience = False
has_degree = False
meets_age = True

# Hem AND hem de OR kullanan karmaşık koşul
reject_application = (not has_experience and not has_degree) or not meets_age

print(reject_application)  # True (deneyim yok AND diploma yok olduğu için reddedildi)
# Bu aynı zamanda De Morgan Yasaları kullanılarak da yazılabilir:
# accept = (experience OR degree) AND meets age; reject = not accept
accept_application = (has_experience or has_degree) and meets_age
reject_application2 = not accept_application

print(reject_application2)  # True (aynı sonuç, farklı mantık)

De Morgan's Laws ne zaman kullanılır:

  • Olumsuz koşulları okumayı kolaylaştırmak için
  • Karmaşık mantıksal ifadeleri basitleştirmek için
  • Aynı mantığın farklı gösterimleri arasında dönüştürme yapmak için
challenge icon

Görev

Başlangıç

Bir evcil hayvan dükkanının bir müşteriye evcil hayvan satıp satamayacağını belirlemek için bir sistem oluşturmasına yardımcı oluyorsunuz.

Aşağıdaki değişkenleri başlatın:

  • True değerine sahip has_license
  • True değerine sahip has_space
  • False değerine sahip has_experience

Şunları belirlemek için mantıksal ifadeler yazın:

  • can_sell_regular_pet: Müşteri bir lisansa VEYA deneyime sahipse VE alanının olması gerekiyorsa normal bir evcil hayvan satın alabilir
  • can_sell_exotic_pet: Müşteri HEM bir lisansa HEM DE deneyime sahipse VE alanının olması gerekiyorsa egzotik bir evcil hayvan satın alabilir
  • cannot_sell_any_pet: Müşterinin lisansı VE deneyimi YOKSA VEYA alanı YOKSA dükkan hiçbir evcil hayvanı satamaz

Verilen değerlerle Beklenen Sonuçlar:

  • can_sell_regular_pet: True (lisansı ve alanı var)
  • can_sell_exotic_pet: False (deneyimi yok)
  • cannot_sell_any_pet: False (hem lisansı hem de alanı var)

Kendin dene

# Değişkenleri başlat

# Koşulları hesapla
# Aşağıdaki her yer tutucu değeri doğru mantıksal ifadeyle değiştir
can_sell_regular_pet = False
can_sell_exotic_pet = False
cannot_sell_any_pet = False

# Aşağıdaki satırları silme
print("Can sell regular pet:", can_sell_regular_pet)
print("Can sell exotic pet:", can_sell_exotic_pet)
print("Cannot sell any pet:", cannot_sell_any_pet)
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fundamentals bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi