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öner — and 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 and ↔ or 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) # TrueHem 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
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:
Truedeğerine sahiphas_licenseTruedeğerine sahiphas_spaceFalsedeğerine sahiphas_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 alabilircan_sell_exotic_pet: Müşteri HEM bir lisansa HEM DE deneyime sahipse VE alanının olması gerekiyorsa egzotik bir evcil hayvan satın alabilircannot_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)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
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma8Döngüler
For DöngüsüWhile DöngüsüBreakContinueÖzet - FaktöriyelRange Fonksiyonuİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Girdi/Çıktı
ÇıktıDeğişkenlerle ÇıktıGirdiTip DönüşümüÖzet - 120'ye KadarÖzet - Doğru veya Yanlış9Fonksiyonlar
Fonksiyon TanımlamaArgümanlarReturnÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan DeğerlerKendi başına pratik yap: Online Python derleyicisi