Mantıksal Operatörler Bölüm 4
Coddy'nin Python Journey'sinin Temel Bilgiler 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, birden çok and ve or işleci birleştiren karmaşık koşullarla uğraşırken özellikle kullanışlıdır.
De Morgan Yasaları, mantıksal ifadeleri dönüştürmek için kurallar sağlar. Bu dönüşümler, kodun daha okunabilir ve anlaşılır olmasına yardımcı olur.
Birinci Yasa: not (A and B), (not A) or (not B) ile aynıdır
not ifadesinin içine dağıtıldığında iki şeyin gerçekleştiğine dikkat et: her işlenen değilleştirilir (A, not A olur; B, not B olur), ve işleç değişir: and, or olur. not yalnızca değerleri değilleştirmez; aynı zamanda aralarındaki bağlantı işleçini 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), (not A) and (not B) ile aynıdır
Aynı iki adımlı kural burada da geçerlidir: her işlenenin değili alınır ve işleç tersine çevrilir. Bu kez or, and hâline gelir. Bunu şöyle düşünebilirsin: not dağıtıldığında, her bir kısmın değili alınırken and ↔ or her zaman tersine çevrilir.
Örneğin:
# Bir kişinin (öğrenci veya istihdam edilmiş) 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 OR İçeren Karmaşık Örnek: Bazen her iki işleci birleştiren koşullara ihtiyaç duyarsın. İşte pratik bir örnek:
# Bir iş başvurusunu KABUL EDEMEYECEĞİMİZİ kontrol etme
# Reddediyoruz eğer: (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, 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 Yasaları ne zaman kullanılmalı:
- Negatif koşulların okunmasını 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
Görev
BaşlangıçBir evcil hayvan dükkânının bir müşteriye evcil hayvan satıp satamayacağını belirleyen bir sistem oluşturmasına yardımcı oluyorsun.
Aşağıdaki değişkenleri başlat:
has_licensedeğişkeniniTruedeğeriylehas_spacedeğişkeniniTruedeğeriylehas_experiencedeğişkeniniFalsedeğeriyle
Aşağıdakileri belirlemek için mantıksal ifadeler yaz:
can_sell_regular_pet: Müşteri, lisansa VEYA deneyime sahipse normal bir evcil hayvan satın alabilir VE yeterli alana sahip olmalıdırcan_sell_exotic_pet: Müşteri, hem lisansa HEM DE deneyime sahipse egzotik bir evcil hayvan satın alabilir VE yeterli alana sahip olmalıdırcannot_sell_any_pet: Müşterinin lisansı VE deneyimi YOKSA VEYA yeterli alanı YOKSA dükkân HİÇBİR 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.
Temel Bilgiler 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