Operatörler Sadece Eylem Sembolleridir
Bir operatör, Python'a bir ya da iki değerle bir şey yapmasını söyleyen bir sembol (ya da kısa bir anahtar kelime) — onları topla, karşılaştır, birinin diğerini içerip içermediğini kontrol et. Birkaçını temel matematikten zaten biliyorsun; Python'un mantık, içerme ve kimlik için birkaç tane daha eki var.
Ana kategorileri teker teker gezeceğiz.
Aritmetik Operatörler
Standart matematik operatörleri, artı birkaç Python özelliği:
Bu listenin unutması kolay iki parçası:
/iki taraf da tam sayı olsa bile float döner.10 / 2sana5.0verir. Tam sayı bölmesi için//kullan.%mod'dur.n % 2 == 0,n'in çift olup olmadığını test etmenin en temiz yoludur.
Python standart matematik önceliğini izler: **, * ve /'den daha sıkı bağlar; onlar da + ve -'den daha sıkı bağlar. Parantezler her şeyi geçersiz kılar:
Şüphe olduğunda parantezleri bolca kullan. Bedelleri yoktur ve niyeti açık hale getirirler.
Karşılaştırma Operatörleri
Altı karşılaştırma, her biri bir boolean döner:
Python karşılaştırmaları zincirlemene izin verir ki bu hem sıra dışı hem de kullanışlıdır:
Bu "age en az 18 ve 65'ten küçük" diye okunur. Arka planda 18 <= age and age < 65 ile eşdeğerdir ama matematik gibi okunur.
Mantıksal Operatörler
Sembol olarak değil, İngilizce kelime olarak yazılırlar:
Bilmekte yarar olan iki ayrıntı:
Kısa devre değerlendirme. and ilk falsy değerde durur; or ilk truthy değerde durur. Birinci taraf cevabı zaten belirliyorsa diğer taraf değerlendirilmez bile. Bu, hatalara karşı güvenle korunmana olanak tanır:
and/or her zaman True/False değil, değer döner. Sonucu belirleyen operandı döndürürler:
Gerçek kodda name = user_input or "anonymous" görürsün — bu, bu davranış üzerine kurulu bir varsayılan değer kalıbıdır.
Atama Operatörleri
= atar. Bileşik biçimler bir işlemi atama ile birleştirir:
Bileşik biçimler string'ler (s += "more") ve listeler (lst += [4, 5]) için de çalışır. Tam biçimi yazmaktan daha hızlı değildirler; sadece daha kısadırlar.
Üyelik: in ve not in
Bir değerin bir kap içinde görünüp görünmediğini test et:
in herhangi bir iterable'da çalışır — listeler, tuple'lar, set'ler, string'ler, dict'ler ve daha fazlası. Büyük aramalarda, liste üzerindeki in O(n)'dir; set ya da dict üzerindeki in O(1)'dir. Bu, üyeliği birçok kez kontrol etmeye başladığında önem kazanır.
Kimlik: is ve is not
is iki değişkenin bellekte aynı nesneye işaret edip etmediğini kontrol eder, sadece eşit değerlere değil:
Neredeyse her zaman == istersin. is'in gerçekten parladığı tek yer None, True ve False'a karşı kontrol yapmaktır:
Topluluk kuralı nettir: is None, == None değil. is True için de aynısı geçerli (nadiren gerekir).
Bit Düzeyi Operatörler (İlk Okumada Atla)
Python'un ayrıca bit düzeyinde operatörleri vardır — &, |, ^, ~, <<, >> — bir tam sayının bireysel bitlerini manipüle etmek için. Kriptografi, düşük seviye ağ iletişimi ve bazı algoritmalarda kullanışlıdırlar. İlk turda onları güvenle göz ardı edebilirsin.
Walrus Operatörü (:=)
Python 3.8 bir ifadede değer atayıp döndüren :='yi ekledi. Hem bir sonucu yakalayıp hem test etmek istediğin koşullarda kullanışlıdır:
Walrus olmadan len(numbers)'ı iki kez çağırırdın ya da ek bir satır eklerdin. Elzem değildir; tekrarı azalttığı yerlerde kullan.
Operatör Önceliği Özeti
Gerçekten kullanacağın operatörler için en sıkıdan en gevşeğe bağlama:
**— üs*,/,//,%— çarpma ve bölme+,-— toplama ve çıkarma<,<=,>,>=,==,!=— karşılaştırmalarnotandor
Şüphe olduğunda parantez kullan. Açıklık zekaya üstündür.
Kontrol Akışına Geçiş
Operatörler cebinde olunca koşul yazabilirsin. Bir sonraki sayfa if/elif/else — programının operatörlerin söylediğine göre bir yol ya da diğerini almasına izin veren yapı.
Sıkça Sorulan Sorular
Python'daki ana operatör türleri nelerdir?
Aritmetik (+, -, *, /, //, %, **), karşılaştırma (==, !=, <, <=, >, >=), mantıksal (and, or, not), atama (=, +=, -=, …), üyelik (in, not in) ve kimlik (is, is not).
Python'da == ile is arasındaki fark nedir?
== iki değerin eşit olup olmadığını kontrol eder. is iki değişkenin bellekte tam olarak aynı nesneye atıfta bulunup bulunmadığını kontrol eder. None, True ve False için is kullan — bunlar tekildir. Diğer her şey için == neredeyse her zaman istediğin şeydir.
Python'da % operatörü ne yapar?
Sayılar için % mod operatörüdür — bir bölmenin kalanını döner. 17 % 5, 2'dir. String'ler için eski stil bir biçimlendirme söz dizimidir ("hello %s" % name gibi), ama f-string'ler onu büyük ölçüde değiştirdi.