04. Temel Operatörler

 

Operatörler, operandların değerini işleyebilen yapılardır. Örneğin 4 + 5 = 9 ifadesini ele alalım. Burada 4 ve 5 operand olarak adlandırılır ve + operatör olarak adlandırılır. Bu bölüm, Python’da kullanılabilecek operatörlere ayrılmıştır.

Python programlama dili, aşağıdaki işlem türlerini destekler.

  • Aritmetiksel operatörler
  • Karşılaştırma operatörleri
  • Atama operatörleri
  • Mantıksal operatörler
  • Bitsel operatörler
  • Üyelik operatörleri
  • Kimlik operatörleri

4.1. Aritmetiksel operatörler

Sayısal değerler üzerine işlem için kullanılan operatörlerdir. (a=20 ve b=10 olarak kabul edelim.)

Operatör Tanımı Örnek
+ İki tarafındaki değerleri toplar. a + b = 30
Sağ taraftaki değeri sol taraftan çıkarır. a – b = 10
* Her iki taraftaki değeri çarpar. a * b = 200
/ Sol taraftaki değeri sağ tarafındaki değere böler. a / b = 2
% Bölüm sonucu kalan değeri verir. (Mod alma işlemi) a % b = 0
** Üst işlemini gerçekleştirir. a**b = 20 üstü 10
// Üste yuvarlama yapar. Ama değer negative ise negative tarafa doğru yuvarlama yapar. −9//2 = 4 ve 9.0//2.0 = 4.0

-11//3 = -4 ve -11.0//3 = -4.0

4.2. Karşılaştırma operatörleri

Bu operatörler, her iki taraftaki değerleri karşılaştırır ve aralarındaki ilişkiyi belirler. Ayrıca ilişkisel operatörler olarak da adlandırılır. (a=20 ve b=10 olarak kabul edelim.)

Operatör Tanımı Örnek
== Eğer iki değer eşit ise true, farklı ise false değeri döndürür. (a == b) false değeri döndürür.
!= Eğer iki değer eşit değilse ise true, eşit ise ise false değeri döndürür. (a != b) true değeri döndürür.
>, >= Sol taraftaki değerin sağ taraftaki değerden büyük olup olmadığının değerini döndürür. >= ayrıca eşit olma durumunu kapsar. (a > b) true değeri döndürür.
<, <= Sol taraftaki değerin sağ taraftaki değerden küçük olup olmadığının değerini döndürür. <= ayrıca eşit olma durumunu kapsar. (a < b) false değeri döndürür.

4.3. Atama operatörleri

Atama işleminde kullanılan operatörlerdir. En fazla kullandığımız “=” operatörüdür.

Operatör Tanımı Örnek
= Sağ tarafı değerini veya sağ tarafta yapılan bir işlemi sol tarafa aktarır. c = a + b, sonuç c değişkenine aktarılmıştır.
+= Sağ taraftaki değeri sol tarafın üzerine ekler ve yeni sonuç sol taraftaki değerde bulunur. a += b, a + b sonucu a değişkenine yansır.
-= Sağ taraftaki değerden sol taraftaki değeri çıkarır ve yeni sonuç sol taraftaki değerde bulunur. a += b, a – b sonucu a değişkenine yansır.
*= İki tarafı çarpar, sonuç sol taraftaki değişkene aktarılır. a *= b, a * b sonucu a değişkenine yansır.
/= Sol taraftaki değeri sağ tarafa böler, sonuç sol taraftaki değere yansır. a /= b, a / b sonucu a değişkenine yansır.
%= Mod alma işlemi yapar, sonuç sol tarafa yansır. a %= b, a % b sonucu a değişkenine yansır.
**= Üst alma işlemi yapar, sonuç sol tarafa yansır. a **= b, a ** b sonucu a değişkenine yansır.
//= Yuvarlama işlemi yapar, sonuç sol tarafa yansır. a //= b, a // b sonucu a değişkenine yansır.

4.4. Mantıksal operatörleri

İki farklı sonucu bağlayıp tek sonuç elde etmek için kullanılan operatörlerdir. Örneğin a false ve b true değere sahip olsun.

Operatör Tanımı Örnek
and Her iki operand değeri true ise true döndürür, aksi taktirde false döndürür. (a and b) false değeri döndürür.
or İki operandtan birinin true olması durumda true döndürür. (a or b) true değeri döndürür.
not not bir operandı değerini tersine çevirir. Başka bir deyişle true değeri false, false değeri true yapar. (not (a and b)) true değeri döndürür.

4.5. Bitsel operatörler

Bilgisayar Mühendisliğine Giriş, Sayısal Bilgisayar, Bilgisayar Mimarisi gibi dersler 0 ve 1’ler üzerine işlemlerin sıklıkla olduğu derslerdir. Aslında, programlama dillerinde çoğunda bu bit işlemleri kolayca yapacak operatörler mevcuttur. Öncelikle konuyu biraz hatırlayalım. Elimizde a=60 ve b=13 değerleri olsun. Bit karşılıkları,

a = 0011 1100

b = 0000 1101

Şimdi bu değerler üzerine operatörleri tanıtıp bazı temel işlemleri yapalım.

Operatör Tanımı Örnek
& AND işlemi yapar. a&b = 0000 1100
| OR işlemi yapar. a|b = 0011 1101
^ XOR işlemi yapar a^b = 0011 0001
~ NOT, DEĞİL işlemi yapar. ~a = 1100 0011
<< Belirtilen kayma sayısı kadar sola kaydırır. Sağ tarafa “0” ekler. a << 2 = 1111 0000 (240 değeri)
>> Belirtilen kayma sayısı kadar sağa kaydırır. Sol tarafa “0” ekler. a >>2 = 0000 1111 (15 değeri)

4.6. Üyelik operatörleri

Python’un üyelik operatörleri dizeler, listeler veya tupleler gibi bir üyelik testi yapar. İki üyelik operatörü vardır. Örneğin bir liste içinde değer araması yapacaksak bir döngü ve bir if karşılaştırmasına ihtiyaç duyarız. C# ve Java gibi dilleride genelde contains() gibi bir metoda bulunur ve true/false bir değer döndürür. Python’da iş daha da kolaylaşmıştır. (x aranan bir değer, y bir liste olsun.)

Operatör Tanımı Örnek
in Eğer değeri bulursa true aksi takdirde false değeri döndürür. Örneğin aranan x, y listesi içinde var ise true döndürür.
not in in operatör sonucunun zıttını alır. True ise false, false ise true.

4.6. Kimlik operatörleri

Kimlik operatörleri, iki nesnenin bellek yerlerini karşılaştırır. Aslında daha önceki bölümde anlattığımız id(değişken) metodu ile bellek adresi alınır. İki değişkenin adres değerleri alınınca == operatörü ile bu karşılaştırma yapılabilir. Ama günümüzde hep daha az kod yazma mantalitesi olduğu için kimlik kontrolü için iki operatör önerilmiştir.

Operatör Tanımı Örnek
is Eğer adres değerleri eşit ise true değeri döndürür. Aksi takdirde false değeri döndürür. a is b veya id(a) == id(b)
is not is operatörünün döndürdüğü değerin tam zıttını döndürür.

4.7. Operatörlerin sıralaması

Matematikte işlemlerin önceliği olduğu gibi operatör konusunda da operatörlerin önceliği vardır. Örneğin a + b * c gibi bir işlem yaparsak öncelikle çarpma işlemi ve daha sonra toplama işlemi yapılır. Öncelik sırası yüksekten başlayıp aşağı doğru sıralanmıştır.

**, ~ , * / % //, + -, >> <<, & (bitsel), ^ |, <= < > >=, <> == !=, = %= /= //= -= += *= **=, is is not, in not in, not or and