True, False ve Karşılıkları ile Matematiksel Denemeler

Python altında çalışırken True’nun 1, False’ın da 0’a karşılık geldiğini biliyoruz. Bunu type() ile onaylayamasak da, şöyle de bir gerçek var: Python altında 0 olmayan tüm sayılar True kabul ediliyor, boş olmayan listeler, içlerindeki tek eleman 0 bile olsa True kabul ediliyor. Bu sadece listeler için de geçerli değil, demetler, sözlükler ve kümelerde bu durum aynen geçerli. Şimdi değişik olduğuna inandığım birkaç işlem üzerinde deneme yapalım.

>>> True
True
>>> False
False
>>> True-False
1
>>> True+False
1
>>> True*False
0
>>> True/False
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    True/False
ZeroDivisionError: division by zero
>>> False/True
0.0

Önce True ve False’ın karşılılarını görerek başladık. O aşamada sayı göremesek de birbirleriyle işleme soktuğumuzda daha net sonuçlar elde edebiliyoruz. Bölme işlemi sırasında elimizdeki bir sayıyı False’a bölmek istediğimizde 0’a bölme hatası verdiğini de görüyoruz. Şimdi devam edelim.

>>> True-1
0
>>> False+1 == True
True
>>> True-1
0
>>> True+False-1
0
>>> True*5
5
>>> True*-10
-10
>>> False/True+5
5.0

Gördüğümüz üzere istediğimiz gibi 4 işlemi bu 2 mantıksal ifade üzerine uygulayabiliyoruz. Arada bir eşitlik kontrolü yaparak sonucu True olarak elde ettiğimize dikkat edin. Onu şunun üzerinden açıklamak daha doğru olacak:

>>> True*10-10 == False
True

Yani elimizdeki iki ifade birbirine eşitse True döndürdü. Bu ifadelerin nelerden oluştukları da bu aşamada önemini kaybetti.

 
comments powered by Disqus