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 onları basitleştirmemiz veya yeniden düzenlememiz gerekir. Bu, özellikle birden fazla and ve or operatörünü birleştiren karmaşık koşullarla uğraşırken yararlıdır.

De Morgan Kuralları, mantıksal ifadeleri dönüştürmek için kurallar sağlar. Bu dönüşümler, kodun daha okunabilir ve anlaşılmasının daha kolay olmasına yardımcı olur.

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

not ifadesini ifadeye dağıttığınızda iki şeyin gerçekleştiğine dikkat edin: her bir işlenen tersine çevrilir (A, not A olur, B, not B olur) ve operatör tersine dönerand, or olur. not sadece değerleri tersine çevirmekle kalmaz; aynı zamanda aralarındaki bağlayıcı operatörü de değiştirir.

Örneğin:

# Bir sayının (1 ile 10 arasında) OLMADIĞINI kontrol edelim
number = 15

# Bu iki ifade birbirine 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), (not A) and (not B) ile aynıdır

Aynı iki adımlı kural burada da geçerlidir: her bir işlenen değillenir ve operatör tersine döner — bu sefer or, and olur. Şöyle düşünün: not operatörünü dağıtmak, her bir parçayı değillerken her zaman andor dönüşümü yapar.

Örneğin:

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

# Bu iki ifade birbirine 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 durumlarda reddediyoruz: (deneyim yok VE diploma yok) VEYA 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 (reddedildi çünkü deneyim yok VE diploma yok)
# Bu ayrıca De Morgan Kuralları kullanılarak da yazılabilir:
# kabul = (deneyim VEYA diploma) VE yaş şartını sağlıyor; reddet = kabul değil
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 Kuralları ne zaman kullanılır:

  • Negatif 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üşüm yapmak için
challenge icon

Görev

Başlangıç

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

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

  • True değeri ile has_license
  • True değeri ile has_space
  • False değeri ile has_experience

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

  • can_sell_regular_pet: Müşteri, lisansı VEYA deneyimi VARSA VE alanı varsa normal bir evcil hayvan satın alabilir
  • can_sell_exotic_pet: Müşteri, HEM lisansı HEM DE deneyimi VARSA VE alanı varsa egzotik bir evcil hayvan satın alabilir
  • cannot_sell_any_pet: Müşterinin lisansı YOKSA VE deneyimi YOKSA VEYA alanı YOKSA dükkan herhangi 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)

Kopya kağıdı

De Morgan Kuralları — mantıksal ifadeleri dönüştürmek için kurallar:

  • not (A and B)(not A) or (not B)
  • not (A or B)(not A) and (not B)

not operatörünü dağıtırken: her bir işlenen değillenir ve operatör tersine döner (andor).

# Birinci Kural örneği
result = not (number >= 1 and number <= 10)
result = (not number >= 1) or (not number <= 10)  # eşdeğer

# İkinci Kural örneği
result = not (is_student or is_employed)
result = (not is_student) and (not is_employed)  # eşdeğer

Kendin dene

# Değişkenleri başlat

# Koşulları hesapla
can_sell_regular_pet = 
can_sell_exotic_pet = 
cannot_sell_any_pet =

# Aşağıdaki satırları silmeyin
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