Operatörler Python'un hesap makinesi tuşlarıdır. Dördünü zaten tanıyorsun, üçü yeni (//, %, **) — ve asıl güç o üçünde:
| İşlem | Örnek | Sonuç | Not |
|---|---|---|---|
+ toplama | 15 + 7 | 22 | |
- çıkarma | 15 - 7 | 8 | |
* çarpma | 15 * 7 | 105 | |
/ bölme | 15 / 7 | 2.142857… | sonuç hep float, 8/2 bile 4.0 |
// tam bölme | 15 // 7 | 2 | bölümün tam kısmı |
% kalan (mod) | 15 % 7 | 1 | bölmeden ARTAN |
** üs alma | 2 ** 10 | 1024 | 2'yi 10 kere kendisiyle çarp |
print(15 / 3) # 5.0 — tam bölünse bile float! print(2 ** 3) # 8 — 2 × 2 × 2 print(5 ** 2) # 25 — 5'in karesi
2 ** 10 = 1024 bayt. ** ile sık karşılaşacaksın.% bölme yapmaz — paylaştırmadan artakalanı verir. 13 dilim pastayı 5 kişiye dağıt: herkese 2'şer dilim çıkar (5×2=10 dilim dağıttın), elinde 3 dilim artar. İşte o artan dilimler %'nin cevabıdır:
print(13 // 5) # 2 (kişi başı dilim — bölüm) print(13 % 5) # 3 (tabakta artan — kalan) print(13 / 5) # 2.6 (normal bölme — bambaşka şey!) print(8 % 4) # 0 (tam paylaşıldı, artan yok)
% asla ondalık üretmez; "kaç tane tam sığar"dan artakalanı söyler. Döngüsel (başa saran) şeylerde de altındır: hafta 7 günde bir başa sarar → 100 % 7 = 2, yani 100 gün sonra haftanın günü 2 ileri kaymıştır.
x % 2 çiftte 0, tekte 1 verir. 0 falsy olduğu için if x % 2 tekleri seçer.%'yi bölme sanmak. 1 % 2'yi 0.5 sanan çok olur — oysa cevap 1: 1'in içinde 2 hiç yok (0 tane), 1'in tamamı artar. Ondalık görmek istiyorsan aradığın operatör /."Kutudakini al, üstüne işle, kutuya geri koy" o kadar sık yapılır ki kısayolu var. Kumbara gibi düşün: += para atmak, -= para çekmek:
skor = 100 skor += 50 # skor = skor + 50 → 150 skor *= 2 # skor = skor * 2 → 300 skor -= 6 # skor = skor - 6 → 294 skor //= 7 # skor = skor // 7 → 42 print(skor) # 42
Tüm aile: += -= *= /= %= //= **=. Zincirlenince değişken adım adım değişir — kafanda her satırdan sonra değeri takip et, gerekirse aralara print koyup izle.
Python matematik dersindeki sırayı izler — "önce çarpma bölme, sonra toplama çıkarma". Tam sıra: önce **, sonra * / // %, en son + -. Parantez ise her şeyi ezer:
print(2 + 3 * 4) # 14 — önce 3*4, sonra +2 (20 DEĞİL!) print((2 + 3) * 4) # 20 — parantez önce print(2 * 3 ** 2) # 18 — önce 3**2=9, sonra 2*9 print(10 - 4 - 3) # 3 — aynı öncelikte soldan sağa
(fiyat * adet) - indirim niyetini herkese anlatır.Bir karşılaştırma sorudur; Python cevabı True/False değeri olarak üretir — aynen 2+3'ün 5 üretmesi gibi. Üretilen cevap değişkene bile atanır:
print(15 > 7) # True print(15 <= 15) # True (küçük VEYA eşit) print(7 == 7) # True (eşit mi?) print(7 != 7) # False (eşit DEĞİL mi? — üstü çizili ≠ gibi düşün) cevap = 10 > 3 # cevap kutusunda artık True var print(cevap) # True
= ATAMADIR, çift == SORUDUR. x = 5 "x artık 5 olsun" der; x == 5 "x, 5 mi?" diye sorar. Karıştırırsan ya hata alırsın ya da — daha kötüsü — farkında olmadan değeri ezersin."a" == "A" → False. Sayıda tür değil değer: 10 == 10.0 → True.Bool'ları birleştirir — kural günlük dil gibidir. Sinema gişesini düşün: "18 yaşından büyük VE bileti olan girer" — tek şart yetmez:
| Operatör | Ne zaman True? | Günlük örnek |
|---|---|---|
and | ikisi de True ise | "18+ VE bileti varsa girer" |
or | en az biri True ise | "üye VEYA kuponluysa indirim" |
not | tersler | "yağmur YOKsa yürüyüş" |
yas, bilet_var = 20, True print(yas >= 18 and bilet_var) # True (ikisi de tamam) print(yas >= 18 and False) # False (bilet yoksa yaş yetmez) print(False or True) # True (biri var ya, yeter) print(not True) # False (tersledi)
and'de False yutandır (bir False her şeyi False yapar); or'da True yutandır. not ise sadece hemen önündekini tersler — kapsamı büyütmek istersen parantez: not (a and b).Python'a özel bir şıklık daha — zincirli karşılaştırma: 1 < x < 10 = "x, 1 ile 10 arasında mı?" (1 < x and x < 10 ile aynı).
Gerçek bir kasa hesabı — aritmetik, tam bölme, koşul ve f-string aynı sahnede:
fiyat, adet, kupon = 250, 3, True
toplam = fiyat * adet # 750
odenecek = toplam - toplam // 10 if kupon else toplam # 750 - 75 = 675
print(f"Ödenecek: {odenecek} TL") # Ödenecek: 675 TL
| Hata | Yanlış düşünce | Gerçek |
|---|---|---|
= ile == karıştırmak | x = 5 "eşit mi?" sorar | = atar, == sorar. Soru soruyorsan çift yaz. |
% ile / karıştırmak | 1 % 2 = 0.5 | 1 % 2 = 1 (kalan!), 1 / 2 = 0.5 (bölme) |
| İşlem önceliğini unutmak | 2 + 3 * 4 = 20 | Önce çarpma: 2 + 12 = 14. Soldan sağa okumak yetmez. |
/ sonucuna şaşırmak | 8 / 2 = 4 | 4.0 — bölme HEP float verir. Tam sayı istiyorsan //. |
//'yi yuvarlama sanmak | 17 // 5 = 3.4 ≈ 3'e yuvarlar | Yuvarlamaz, küsuratı atar: 19 // 5 de 3'tür (3.8'e rağmen 4 değil). |
if x = 5: yazarsan Python neyse ki hata verip durdurur. Ama sonuc = x == 5 yazacakken sonuc = x yazarsan hata YOK — program yanlış değerle sessizce devam eder. Karşılaştırma yazdığında iki eşittiri gözünle say.Önce kendi cevabını ver, sonra aç:
print(10 % 3, 10 // 3, 10 / 3) ne yazar? — cevabı gör1 3 3.3333333333333335 — kalan 1 (3×3=9, artan 1), tam bölüm 3, normal bölme ise float. Üçü üç ayrı soruya cevap verir.
print(2 + 2 ** 3 * 2) kaç yazar? — cevabı gör18 — sıra: önce üs 2**3=8, sonra çarpma 8*2=16, en son toplama 2+16=18. Soldan sağa okuyup 128 bulan da olur, 64 bulan da — öncelik tablosu kazanır.
print(not (5 > 3 and 2 > 4)) ne yazar? — cevabı görTrue — içeriden dışarı: 5 > 3 → True, 2 > 4 → False, True and False → False (and'de bir False yeter), not False → True.