Python'daki Operatörler

Python'daki Operatörler

Bu makale, Python'daki operatörleri açıklar.

YouTube Video

Python'daki Operatörler

Python'un çeşitli operatörleri vardır ve bunlar genel olarak şu şekilde kategorize edilebilir. Her kategori için temsilci operatörleri açıklayacağız.

Aritmetik Operatörler

Aritmetik operatörler, sayılar üzerinde hesaplama yapmak için kullanılan operatörlerdir.

Operatör Anlamı Örnek
+ Toplama 3 + 25
- Çıkarma 3 - 21
* Çarpma 3 * 26
/ Bölme (her zaman ondalıklı) 3 / 21.5
// Taban bölmesi 3 // 21
% Kalan (modül) 3 % 21
** Üs alma 3 ** 29
 1a = 10
 2b = 3
 3
 4print(f"{a} + {b} = {a + b}")     # Addition
 5print(f"{a} - {b} = {a - b}")     # Subtraction
 6print(f"{a} * {b} = {a * b}")     # Multiplication
 7print(f"{a} / {b} = {a / b}")     # Division (float)
 8print(f"6 / 3 = {6 / 3}")         # Division (float)
 9print(f"{a} // {b} = {a // b}")   # Floor Division
10print(f"{a} % {b} = {a % b}")     # Modulo (remainder)
11print(f"{a} ** {b} = {a ** b}")   # Exponentiation
  • Dört temel aritmetik işleme ek olarak, Python bölme (/), tam sayı bölme (//), modülüs (%) ve üs alma (**) işleçlerini sağlar. Bölme işlemi, tamsayılar bölünse bile ondalıklı (float) bir sayı döndürür.

Atama Operatörleri

Atama operatörleri, değişkenlere değer atamak için kullanılır.

Operatör Anlamı Örnek
= Atama x = 5
+= Topla ve ata x += 2x = x + 2
-= Çıkar ve ata x -= 2x = x - 2
*= Çarp ve ata x *= 2x = x * 2
/= Böl ve ata x /= 2x = x / 2
//= Taban bölmesi x //= 2x = x // 2
%= Kalanı ata x %= 2x = x % 2
**= Üssünü ata x **= 2x = x ** 2
&= VE ile atama yap x &= 0b1010x = x & 0b1010
|= VEYA ile atama yap x | = 0b0011x = x | 0b0011
^= XOR ile atama yap x ^= 0b0101x = x ^ 0b0101
<<= Sola kaydırdıktan sonra atama yap x <<= 2x = x << 2
>>= Sağa kaydırdıktan sonra atama yap x >>= 1x = x >> 1
:= Atama ifadesi (denizayısı operatörü) if (n := len(data)) > 10:Koşul değerlendirilirken n değişkenine atama yapar
 1x = 5           # x = 5
 2
 3x += 3          # x = x + 3
 4x -= 2          # x = x - 2
 5x *= 4          # x = x * 4
 6x /= 3          # x = x / 3
 7x //= 2         # x = x // 2
 8x %= 5          # x = x % 5
 9x **= 3         # x = x ** 3
10
11x = 0b1100      # x = 0b1100 (12)
12
13x &= 0b1010     # x = x & 0b1010
14x |= 0b0011     # x = x | 0b0011
15x ^= 0b0101     # x = x ^ 0b0101
16x <<= 2         # x = x << 2
17x >>= 1         # x = x >> 1
18
19print(bin(x))   # Display in binary
20print(x)        # Display in decimal
21
22# Walrus operator
23if (n := len("hello")) > 3:
24    print(f"Length is {n}")
  • Atama operatörleri, standart atamayı çeşitli operatörlerle birleştirerek sonucun atanmasını sağlar.
  • Denizayısı operatörü (:=), Python 3.8 ve sonrasında kullanılabilen bir atama ifadesidir.
  • Standart atama yalnızca bir deyim olarak kullanılabilirken, denizayısı operatörü bir ifade içinde atama yapılmasına olanak tanır.

Karşılaştırma Operatörleri

Karşılaştırma operatörleri değerleri karşılaştırır ve True veya False döndürür.

Operatör Anlamı Örnek
== Eşit 3 == 3True
!= Eşit değil 3 != 4True
> Büyük 5 > 2
< Küçük 5 < 2
>= Büyük veya eşit 5 >= 5
<= Küçük veya eşit 3 <= 4
 1a = 10
 2b = 20
 3
 4# Equal to (==)
 5print(f"{a} == {b} -> {a == b}")      # False: a and b are not equal
 6print(f"3 == 3.0 -> {3 == 3.0}")      # True: int and float with the same value are equal
 7print(f"3 == '3' -> {3 == '3'}")      # False: different types (int vs str)
 8print(f"True == 1 -> {True == 1}")    # True: True is equivalent to 1
 9print(f"False == 0 -> {False == 0}")  # True: False is equivalent to 0
10print(f"None == 0 -> {None == 0}")    # False: None is not equal to 0
11
12# Not equal to (!=)
13print(f"{a} != {b} -> {a != b}")      # True: a and b are not equal
14
15# Greater than (>)
16print(f"{b} > {a} -> {b > a}")        # True: 20 > 10
17
18# Less than (<)
19print(f"{a} < {b} -> {a < b}")        # True: 10 < 20
20
21# Greater than or equal to (>=)
22print(f"{a} >= 10 -> {a >= 10}")      # True: a is greater than or equal to 10
23
24# Less than or equal to (<=)
25print(f"{a} <= 10 -> {a <= 10}")      # True: a is less than or equal to 10
  • Karşılaştırma operatörleri iki değeri büyüklük ya da eşitlik bakımından karşılaştırır ve sonuç olarak True veya False döndürür.
  • Python'da farklı veri tiplerini karşılaştırırken dikkatli olmalısınız. Bazı tipler birbiriyle karşılaştırılabilir, ancak sonuçlar sezgisel olmayabilir.

Mantıksal Operatörler

Mantıksal operatörler, mantıksal ifadeleri birleştirmek için kullanılır.

Operatör Anlamı Örnek
and İkisi de doğruysa True döner True and FalseFalse
or Herhangi biri doğruysa True döner True or FalseTrue
not Boolean değeri tersine çevirir not TrueFalse
1x = 10
2print(x > 5 and x < 20)  # True
3print(x < 5 or x > 20)   # False
4print(not x == 10)       # False
  • and mantıksal bir operatördür ve yalnızca sol ve sağdaki koşulların ikisi de True ise True döndürür.
  • or mantıksal bir operatördür ve soldaki veya sağdaki koşullardan herhangi biri True ise True döndürür.
  • not mantıksal bir operatördür ve bir koşulun doğruluk değerini tersine çevirir. Eğer doğruysa yanlış olur, yanlışsa doğru olur.

Mantıksal operatörlerin önceliği

Operatörlerin önceliği vardır. Bu, bir ifadede hangi operatörün önce değerlendirileceğini belirleyen kuraldır. Mantıksal operatörler şu sırayla değerlendirilir: not, ardından and, sonra or.

1result = True or False and False
2print(result)  # True
3
4result = (True or False) and False
5print(result)  # False

たとえば、

İlk örnekte, önce and değerlendirilir, bu nedenle False and False sonucu False olur ve sonuç olarak True or False ifadesi True olur. İkinci örnekte gösterildiği gibi, parantez kullanarak değerlendirme sırasını da değiştirebilirsiniz.

Bit Düzeyinde Operatörler

Bit düzeyinde işlemler gerçekleştiren bit düzeyi operatörleridir.

Operatör Anlamı Örnek
& Bit düzeyinde VE (AND) 5 & 31
| Bit düzeyinde VEYA (OR) 5 | 37
^ Bit düzeyinde özel VEYA (XOR) 5 ^ 36
~ Bit düzeyinde DEĞİL (NOT) ~5-6
<< Sola kaydırma 5 << 110
>> Sağa kaydırma 5 >> 12
 1# Sample code for bitwise operators
 2
 3# Define two integers
 4a = 5  # Binary: 0101
 5b = 3  # Binary: 0011
 6
 7# Bitwise AND
 8result_and = a & b  # Binary: 0001 -> Decimal: 1
 9print(f"{a} & {b} = {result_and}")
10
11# Bitwise OR
12result_or = a | b  # Binary: 0111 -> Decimal: 7
13print(f"{a} | {b} = {result_or}")
14
15# Bitwise XOR
16result_xor = a ^ b  # Binary: 0110 -> Decimal: 6
17print(f"{a} ^ {b} = {result_xor}")
18
19# Bitwise NOT (inverting bits)
20result_not = ~a  # Binary: -(0101 + 1) -> Decimal: -6
21print(f"~{a} = {result_not}")
22
23# Left shift
24shift_left = a << 1  # Binary: 1010 -> Decimal: 10
25print(f"{a} << 1 = {shift_left}")
26
27# Right shift
28shift_right = a >> 1  # Binary: 0010 -> Decimal: 2
29print(f"{a} >> 1 = {shift_right}")
  • Bit düzeyinde VE, VEYA, XOR, DEĞİL işlemlerinin yanı sıra bit kaydırma işlemleri de yapabilirsiniz. Ayrıca bunları &= gibi atama operatörleriyle birleştirebilirsiniz.

Üyelik Operatörleri

Kapsam operatörleri listeler ve sözlükler gibi koleksiyonlarla birlikte kullanılır.

 1x = [1, 2, 3]
 2y = 2
 3z = 4
 4
 5print("y in x : ", y in x)  # Result is True
 6print("z in x : ", z in x)  # Result is False
 7
 8print("y not in x : ", y not in x)  # Result is False
 9print("z not in x : ", z not in x)  # Result is True
10
11text = "hello world"
12print("'world' in 'hello world' : ",      "world" in text)      # True
13print("'python' not in 'hello world' : ", "python" not in text) # True
  • in operatörü, belirtilen bir değerin bir liste veya dize gibi bir dizide ya da sözlük gibi bir koleksiyonda bulunup bulunmadığını belirlemek için kullanılır.
  • not in operatörü, belirtilen bir değerin bir dizi veya koleksiyonda bulunup bulunmadığını belirlemek için kullanılır.

Kimlik Operatörleri

Kimlik operatörleri, nesnelerin kimliğini kontrol eder.

 1x = [1, 2, 3]
 2y = x
 3z = x.copy()
 4
 5print("x is y : ", x is y)  # Result is True
 6print("x is z : ", x is z)  # Result is False
 7
 8print("x is not y : ", x is not y)  # Result is False
 9print("x is not z : ", x is not z)  # Result is True
10
11print("x == y : ", x == y)  # Result is True
12print("x == z : ", x == z)  # Result is True
  • is operatörü iki nesnenin aynı nesne (yani aynı bellek adresini gösteren) olup olmadığını kontrol eder.
  • is not operatörü iki nesnenin farklı nesneler olup olmadığını kontrol eder.
  • Örneğin, x is y, x == y'den farklı olarak nesne kimliğini kontrol eder, değer eşitliğini değil.

Tür kontrolü

Python'da bir değerin belirli bir türde olup olmadığını kontrol etmek için isinstance() fonksiyonunu kullanırsınız. Bir değişkenin tam türünü kontrol etmek için type() fonksiyonunu da kullanabilirsiniz. Bunlar operatör olmasa da, tür kontrolü için temel mekanizmalardır.

 1x = 10
 2print(isinstance(x, int))  # True
 3
 4y = "hello"
 5print(isinstance(y, str))  # True
 6
 7z = [1, 2, 3]
 8print(isinstance(z, list))  # True
 9
10print(type(10))        # <class 'int'>
11print(type("hello"))   # <class 'str'>
12
13print("isinstance(3, int) : ", isinstance(3, int))  # True
14print("type(3) is int : ", type(3) is int)          # True
15print("type(True) is bool : ", type(True) is bool)  # True
  • isinstance(), bir nesnenin belirli bir sınıfın ya da onun alt sınıfının örneği olup olmadığını kontrol eden bir işlevdir.
  • type(), bir nesnenin tam olarak türünü (sınıfını) döndüren bir işlevdir. Genellikle kesin tür karşılaştırması yapmak istediğinizde kullanılır.
  • isinstance() kalıtım ilişkilerini dikkate alırken, type() tam eşleşmeleri kontrol eder.

Özet

Her operatörü kullanırken, amacına ve türüne göre uygun şekilde seçmeniz gerekir. Python dinamik bir türlendirmeye sahip bir dil olduğu için, bir işlemin sonucu hesaplanan değerlerin türüne bağlı olarak değişebilir.

Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.

YouTube Video