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 ifadeler üzerinde çalışırken bazen bunları sadeleştirmemiz veya yeniden düzenlememiz gerekir. Bu, özellikle birden fazla and ve or işleci içeren karmaşık koşullarla uğraşırken yararlıdır.
De Morgan Yasaları, mantıksal ifadeleri dönüştürmek için kurallar sunar. 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 ifadesini ifadeye dağıttığınızda iki şey olduğunu fark edin: her bir işlenenin değili alınır (A, not A olur; B, not B olur) ve işleç değişir: and, or olur. not yalnızca değerlerin değili alınmasını sağlamaz; aralarındaki bağlayıcı işleci de değiştirir.
Örneğin:
# Bir sayının 1 ile 10 arasında olup olmadığını kontrol edelim (DEĞİL)
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şlecin değili alınır ve işleç tersine döner. Bu kez or, and olur. Şöyle düşünebilirsin: not dağıtıldığında, her parçanın değili alınırken and ↔ or daima tersine döner.
Ö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. İşte pratik bir örnek:
# Bir iş başvurusunu kabul EDİP EDEMEYECEĞİMİZİ kontrol ediyoruz
# Şu durumda reddederiz: (deneyim yok VE diploma yok) VEYA yaş şartı karşılanmı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 VE diploma olmadığı için reddedildi)# Bu, De Morgan yasaları kullanılarak da yazılabilir:
# kabul = (deneyim VEYA diploma) VE yaş koşulunu karşılıyor; ret = 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)Python, and işlemini or işleminden önce değerlendirir; bu nedenle a or b and c, a or (b and c) anlamına gelir. Önce kontrol edilecek kısmı parantez içine al: (a or b) and c.
De Morgan Yasaları 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üşüm yapmak için
Görev
BaşlangıçBir evcil hayvan dükkânının, müşteriye evcil hayvan satıp satamayacağını belirleyen bir sistem oluşturmasına yardım ediyorsun.
Bu değişkenler senin için zaten ayarlandı:
has_licensedeğeriTrueolarak ayarlandıhas_spacedeğeriTrueolarak ayarlandıhas_experiencedeğeriFalseolarak ayarlandı
Şunları 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 ayrıca 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 ayrıca yeterli alana sahip olmalıdırcannot_sell_any_pet: Müşterinin lisansı VE deneyimi YOKSA YA DA yeterli alanı YOKSA dükkân hiçbir evcil hayvan satamaz
Kendin dene
# Koşulları hesaplayın
# Aşağıdaki her yer tutucu değeri doğru mantıksal ifadeyle değiştirin
can_sell_regular_pet = False
can_sell_exotic_pet = False
cannot_sell_any_pet = False
# 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)
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 2Tekrar - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesabı Paylaştırma Hesaplayıcısı
Karşılama MesajıGirdi Alma8Döngüler
For DöngüsüWhile DöngüsüBreakContinueTekrar - FaktöriyelRange Fonksiyonuİç İçe DöngüTekrar - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerModülo OperatörüAritmetik Kısa YollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Girdi/Çıktı
ÇıktıDeğişkenlerle ÇıktıGirdiTür DönüşümüTekrar - 120'ye KadarTekrar - Doğru veya Yanlış9Fonksiyonlar
Bir Fonksiyon TanımlamaArgümanlarDönüş DeğeriTekrar - Sigma FonksiyonuTekrar - Doğrulama FonksiyonuVarsayılan Değerler12Sıralı Yapılar Üzerinde Yineleme
Öğeler Üzerinde Yinelemeenumerate FonksiyonuDizeler Üzerinde Yineleme Bölüm 1Dizeler Üzerinde Yineleme Bölüm 2Kendi başına pratik yap: Online Python derleyicisi