⚖️ Karşılaştırma Operatörleri

11-1.02.02

Python’da 6 adet karşılaştırma operatörü vardır. Bu operatörlerin hepsi iki operandlı araek yani binary infix operatörlerdir:

<, >, <=, >=, ==, !=

Bu operatörler bool türden değer üretirler. Yani True ve False değer üretirler. Örneğin:

>>> 4 > 3
True
>>> 4 != 4
False
>>> 4.2 > 4.1
True
>>> 4.2 > 4
True

Örneğin str yani string türü de karşılaştırmaya sokulabilir. Ama int ile str kıyaslanamaz.

>>> "alper" > "yazar"
False
>>> "alper" > 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'

11-1.05.00

bool türünden değerler karşılaştırmaya sokulduğu zaman, aslında diğer türlerle işleme sokuldukları durumlarda daha da genelleştirirsek, önce int türüne dönüştürülürler daha sonra işleme sokulurlar. Bu durumda True, 1 değerini alırken False ise 0 değerini alır.

Örneğin:

>>> True > False # 1 > 0 ile benzer
True
>>> True == True # 1 == 1 ile benzer
True
>>> 0 == False # 0 == 0 ile benzer
True
>>> 1 >= True # 1 >= 1 ile benzer
True
>>> True + 2 # 1 + 2 ile benzer
3

Tabii bunlar geçerli olsa da bool değerlerin > gibi operatörlerle karşılaştırılması biraz gariptir. Yani True > False karşılaştırması yapmak çok anlamlı olmayabilir ama geçerlidir. Normalde bu tarz bool değerleri sadece == veya != karşılaştırmak anlamlı olacaktır.

⛓️ Chained Comparisons, Zincirleme Karşılaştırmalar

11-1.12.20

Python’ın diğer programlama dillerinden ayrılan bir özelliği daha vardır. 15 < x < 25 yazdığımız zaman, matematiksel olarak x, 15’ten büyük 25’ten küçük mü? diye bir anlam oluşur. Programlama dillerinin çoğunda ise böyle değildir. Burada tipik olarak İ1 = 15 < x işlemi yapılır ve bunu sonucu İ2 = İI < 25 işlemine sokulur. Java ve C# dillerinde ilk karşılaştırma işleminin sonucu bool türünden olacağı için ikinci işlem hataya sebep olacaktır. O dillerde bool ile int karşılaştırmaya sokulamaz. Python’da ise gerçekten matematikteki anlama gelmektedir. Yani 15 < x and x < 25 gibi düşünebiliriz. Bu, Python’nun matematiksel alana yakınlığı ile ilgilidir. a == b < c gibi ifadeler de yazabiliriz, bu da a == b and b < c anlamına gelmektedir. Hatta a > b < c == d de yapabiliriz. Bu da a > b and b < c and c == d anlamına gelir. Pratikte ise yakında göreceğimiz mantıksal operatörler kullanılır. Bu, Pythonic bir şeydir yani Python’da böyledir diğer dillerde ise çoğunluk böyle değildir.

11-1.22.45

💭 Yorumlar

Yorum altyapısı giscus tarafından (evet tarafından!) sağlanmaktadır. Yorum yazabilmek için GitHub hesabınız üzerinden giriş yapmanız gerekmektedir. Yorumlar, Github Discussions üzerinde saklanmaktadır.

aecfb6a3-ef4a-43b8-8c6d-a2c8dfc5412a