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 + 2 → 5 |
- |
Çıkarma | 3 - 2 → 1 |
* |
Çarpma | 3 * 2 → 6 |
/ |
Bölme (her zaman ondalıklı) | 3 / 2 → 1.5 |
// |
Taban bölmesi | 3 // 2 → 1 |
% |
Kalan (modül) | 3 % 2 → 1 |
** |
Üs alma | 3 ** 2 → 9 |
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 += 2 → x = x + 2 |
-= |
Çıkar ve ata | x -= 2 → x = x - 2 |
*= |
Çarp ve ata | x *= 2 → x = x * 2 |
/= |
Böl ve ata | x /= 2 → x = x / 2 |
//= |
Taban bölmesi | x //= 2 → x = x // 2 |
%= |
Kalanı ata | x %= 2 → x = x % 2 |
**= |
Üssünü ata | x **= 2 → x = x ** 2 |
&= |
VE ile atama yap | x &= 0b1010 → x = x & 0b1010 |
|= |
VEYA ile atama yap | x | = 0b0011 →x = x | 0b0011 |
^= |
XOR ile atama yap | x ^= 0b0101 → x = x ^ 0b0101 |
<<= |
Sola kaydırdıktan sonra atama yap | x <<= 2 → x = x << 2 |
>>= |
Sağa kaydırdıktan sonra atama yap | x >>= 1 → x = 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 == 3 → True |
!= |
Eşit değil | 3 != 4 → True |
> |
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
veyaFalse
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 False → False |
or |
Herhangi biri doğruysa True döner | True or False → True |
not |
Boolean değeri tersine çevirir | not True → False |
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 deTrue
iseTrue
döndürür.or
mantıksal bir operatördür ve soldaki veya sağdaki koşullardan herhangi biriTrue
iseTrue
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 & 3 → 1 |
| |
Bit düzeyinde VEYA (OR) | 5 | 3 →7 |
^ |
Bit düzeyinde özel VEYA (XOR) | 5 ^ 3 → 6 |
~ |
Bit düzeyinde DEĞİL (NOT) | ~5 → -6 |
<< |
Sola kaydırma | 5 << 1 → 10 |
>> |
Sağa kaydırma | 5 >> 1 → 2 |
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.