➗ 0.3: Operatörler

Aritmetik, Karşılaştırma ve Mantıksal Operatörler

📖 Operatör Nedir?

Operatörler, değişkenler ve değerler üzerinde işlem yapmak için kullanılan özel sembollerdir. Python'da birçok operatör türü bulunur.

🔢 1. Aritmetik Operatörler

Matematiksel işlemler için kullanılır:

Operatör Açıklama Örnek Sonuç
+ Toplama 5 + 3 8
- Çıkarma 5 - 3 2
* Çarpma 5 * 3 15
/ Bölme (ondalıklı) 5 / 2 2.5
// Tam bölme (floor) 5 // 2 2
% Mod (kalan) 5 % 2 1
** Üs alma 2 ** 3 8

📌 Aritmetik Operatör Örnekleri

a, b = 10, 3

print(f"Toplama: {a} + {b} = {a + b}")      # 13
print(f"Çıkarma: {a} - {b} = {a - b}")      # 7
print(f"Çarpma: {a} * {b} = {a * b}")       # 30
print(f"Bölme: {a} / {b} = {a / b}")        # 3.333...
print(f"Tam Bölme: {a} // {b} = {a // b}")  # 3
print(f"Mod (Kalan): {a} % {b} = {a % b}")  # 1
print(f"Üs Alma: {a} ** {b} = {a ** b}")    # 1000
💡 Önemli: Mod (%) Operatörü

Mod operatörü bölme işleminden kalanı verir. Çok kullanışlıdır:

  • Çift/Tek kontrolü: n % 2 == 0 → Çift sayı
  • Bölünebilirlik: n % 3 == 0 → 3'e bölünür
  • Basamak alma: n % 10 → Son basamak

📌 Mod Operatörü Kullanımı

# Tek/Çift kontrolü
sayi = 17
if sayi % 2 == 0:
    print("Çift sayı")
else:
    print("Tek sayı")  # Bu çalışır

# Son basamağı alma
n = 12345
son_basamak = n % 10
print(f"{n} sayısının son basamağı: {son_basamak}")  # 5

# 5'e bölünebilirlik
print(25 % 5 == 0)  # True (bölünür)
print(17 % 5 == 0)  # False (bölünmez)

📝 2. Atama Operatörleri

Değişkenlere değer atamak için kullanılır:

Operatör Örnek Eşdeğeri
= x = 5 x = 5
+= x += 3 x = x + 3
-= x -= 3 x = x - 3
*= x *= 3 x = x * 3
/= x /= 3 x = x / 3
//= x //= 3 x = x // 3
%= x %= 3 x = x % 3
**= x **= 3 x = x ** 3

📌 Atama Operatörü Örnekleri

x = 10
print(f"Başlangıç: x = {x}")

x += 5   # x = x + 5
print(f"x += 5 → x = {x}")  # 15

x -= 3   # x = x - 3
print(f"x -= 3 → x = {x}")  # 12

x *= 2   # x = x * 2
print(f"x *= 2 → x = {x}")  # 24

x //= 5  # x = x // 5
print(f"x //= 5 → x = {x}") # 4

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

İki değeri karşılaştırır, sonuç True veya False döner:

Operatör Açıklama Örnek Sonuç
== Eşit mi? 5 == 5 True
!= Eşit değil mi? 5 != 3 True
> Büyük mü? 5 > 3 True
< Küçük mü? 5 < 3 False
>= Büyük veya eşit mi? 5 >= 5 True
<= Küçük veya eşit mi? 5 <= 3 False

📌 Karşılaştırma Operatörü Örnekleri

a, b = 10, 5

print(f"{a} == {b} → {a == b}")   # False
print(f"{a} != {b} → {a != b}")   # True
print(f"{a} > {b} → {a > b}")     # True
print(f"{a} < {b} → {a < b}")     # False
print(f"{a} >= {b} → {a >= b}")   # True
print(f"{a} <= {b} → {a <= b}")   # False

# String karşılaştırması (alfabetik)
print("ali" < "veli")   # True (a, v'den önce)
print("abc" == "abc")   # True
⚠️ Dikkat: = (atama) ile == (karşılaştırma) farklıdır!
  • x = 5 → x'e 5 değerini ata
  • x == 5 → x, 5'e eşit mi? (True/False)

🧠 4. Mantıksal Operatörler

Boolean (True/False) değerlerle çalışır:

Operatör Açıklama Örnek Sonuç
and VE - İkisi de True ise True True and False False
or VEYA - Biri True ise True True or False True
not DEĞİL - Tersini alır not True False

📊 Doğruluk Tabloları

AND (VE)
ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse
OR (VEYA)
ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse
NOT (DEĞİL)
Anot A
TrueFalse
FalseTrue

📌 Mantıksal Operatör Örnekleri

yas = 20
ogrenci = True
maas = 3000

# and örneği - İkisi de True olmalı
print(yas >= 18 and ogrenci)  # True (20>=18 VE öğrenci)

# or örneği - Biri True yeterli
print(yas < 18 or ogrenci)    # True (18'den küçük DEĞİL AMA öğrenci)

# not örneği - Tersini al
print(not ogrenci)            # False

# Karmaşık örnek
# İndirim: 18 yaş altı VEYA (öğrenci VE maaşı 4000'den az)
indirim = yas < 18 or (ogrenci and maas < 4000)
print(f"İndirim hakkı: {indirim}")  # True

📐 5. Operatör Önceliği

Python'da operatörler belirli bir sırayla işlenir (yüksekten düşüğe):

Öncelik Operatör Açıklama
1 (En yüksek) () Parantez
2 ** Üs alma
3 *, /, //, % Çarpma, bölme, mod
4 +, - Toplama, çıkarma
5 ==, !=, >, <, >=, <= Karşılaştırma
6 not Mantıksal NOT
7 and Mantıksal AND
8 (En düşük) or Mantıksal OR

📌 Operatör Önceliği Örnekleri

# Matematiksel öncelik
print(2 + 3 * 4)        # 14 (önce çarpma: 3*4=12, sonra 2+12)
print((2 + 3) * 4)      # 20 (önce parantez: 2+3=5, sonra 5*4)

# Üs önce işlenir
print(2 ** 3 ** 2)      # 512 (sağdan sola: 3**2=9, 2**9=512)
print((2 ** 3) ** 2)    # 64 (parantez: 2**3=8, 8**2=64)

# Mantıksal operatör önceliği
x, y, z = True, False, True
print(x or y and z)     # True (önce and: y and z = False, sonra x or False = True)
print((x or y) and z)   # True (önce or: x or y = True, sonra True and z = True)
💡 İpucu: Şüphe duyduğunuzda parantez kullanın! Hem önceliği garanti eder hem de kodu daha okunabilir yapar.

🎯 6. Pratik Örnekler

📌 Örnek 1: Yaş Kontrolü

# Kullanıcıdan yaş al
yas = int(input("Yaşınız: "))

# Oy kullanabilir mi? (18 veya üzeri)
oy_kullanabilir = yas >= 18
print(f"Oy kullanabilir mi? {oy_kullanabilir}")

# Genç mi? (13-19 arası)
genc = yas >= 13 and yas <= 19
print(f"Genç mi? {genc}")

📌 Örnek 2: Bölünebilirlik Kontrolü

# Bir sayının 3 ve 5'e bölünüp bölünmediğini kontrol et
sayi = int(input("Sayı girin: "))

# Her ikisine de bölünüyor mu?
ikisine_de = sayi % 3 == 0 and sayi % 5 == 0
print(f"Hem 3'e hem 5'e bölünür: {ikisine_de}")

# En az birine bölünüyor mu?
birine = sayi % 3 == 0 or sayi % 5 == 0
print(f"En az birine bölünür: {birine}")

📌 Örnek 3: Artık Yıl Kontrolü

# Artık yıl: 4'e bölünür VE (100'e bölünmez VEYA 400'e bölünür)
yil = int(input("Yıl girin: "))

artik_yil = (yil % 4 == 0) and (yil % 100 != 0 or yil % 400 == 0)

if artik_yil:
    print(f"{yil} artık yıldır")
else:
    print(f"{yil} artık yıl değildir")

📌 Örnek 4: Not Hesaplama

# Vize ve final notlarını al
vize = float(input("Vize notu: "))
final = float(input("Final notu: "))

# Ortalama hesapla (vize %40, final %60)
ortalama = vize * 0.4 + final * 0.6

# Geçti mi? (ortalama >= 50 VE final >= 50)
gecti = ortalama >= 50 and final >= 50

print(f"Ortalama: {ortalama:.1f}")
print(f"Geçti mi? {gecti}")

📋 Özet

Bu Derste Öğrendiklerimiz:
  1. Aritmetik: +, -, *, /, //, %, **
  2. Atama: =, +=, -=, *=, /=
  3. Karşılaştırma: ==, !=, >, <, >=, <=
  4. Mantıksal: and, or, not
  5. Öncelik: Parantez > Üs > Çarpma/Bölme > Toplama/Çıkarma > Karşılaştırma > not > and > or