
Herkese selamlar,
Bu konuda, Python dilinde en çok karşılaşılan hatalardan bahsedeceğiz. En bilindikten az bilindik hata türlerini sizlere aktaracağım. Şimdiden iyi okumalar.
Python da iki çeşit hata türü bulunur. Bunlar:
1. SÖZDİZİMİ HATALARI
2. CALIŞMA ZAMANI HATALARI (RUNTİME EXCEPTİONS)
Şimdi ilk hata türümüz olan "SÖZDİZİMİ HATALARI" nı inceleyelim.

SÖZDİZİMİ HATALARI
Bu hatalar kod daha çalışmaya başlamadan önce Python tarafından tespit edilir. Sebep genelde yanlış yazım, eksik karakter veya yanlış girintidir. Yani kodda bir yazım yanlışı yapmanız durumunda program daha çalışmadan Python size hata fırlatır ve program çalışmaz. Şimdi gelin ilk sözdizimi hatamıza bakalım:
1. SyntaxError: Kodu yanlış yazdığınızda oluşan hatadır. Bu hatanın nedeni genelde parantez eksiği, operatör eksiği vb. kod bazlı hatalardan kaynaklanır. Şimdi bir örnek üzerinden gösterelim:
Python:
if True
print("Merhaba")
# normalde True dan sonra ":" eklememiz gerek
Bu kodu çalıştırdığınızda Python size:
Kod:
SyntaxError: invalid syntax
Hatasını verecektir. Yani ":" eklemediğimiz için daha program çalışmadan hata aldık.
2. IndentationError: Her programlama dilinde olduğu gibi, Pythonda da girinti (boşluk) kullanılır. Bu hata girinti olmadığı zaman ortaya çıkar. Örnek olarak:
Python:
def fonksiyon():
print("Hata") # yanlış kullanım
def fonksiyon():
print("Hata") # doğrusu
Bu durumda:
Kod:
IndentationError: expected an indented block
Hatası alırız. Yani en ufak bir girinti olmadığında Python bu hatayı kod çalışmadan verir.

CALIŞMA ZAMANI HATALARI (RUNTİME EXCEPTİONS)
Bu hata türü de kod çalışırken oluşan hatalardır. Bug olarak da düşünebilirsiniz. Şimdi gelelim bu hata türlerine.
1. NameError: Tanımlanmamış bir değişken veya fonksiyon kullanıldığında bu hata ortaya çıkar. Örnek olarak:
Python:
print(sayi) # burada sayi değişkeni tanımlanmadı
Bunun sonucunda:
Kod:
NameError: name 'sayi' is not defined
sayi değişkeni olmadığı için ve biz bunu kullanmaya çalıştığımız için hata verdi.
2. TypeError: Veri türleri (string, int gibi) hatalı kullanımda ortaya çıkan bir hata türüdür. Örnek olarak:
Python:
"5" + 3 # "5" string, 3 int (tamsayı) değer olduğundan ve bu ikisini toplayamadığımız için hata verir
Bunun sonucunda:
Kod:
TypeError: can only concatenate str (not "int") to str
Yani int ve str değerleri toplamaya çalıştık. Veri uyuşmazlığı olduğu için hata verdi.
3. ValueError: Veri türü uyumlu olduğu halde değer yanlış ise bu hata türü çıkar. Örnek olarak:
Python:
int("abc") # int tamsayı ama biz string değer verdik
Bunun sonucunda:
Kod:
ValueError: invalid literal for int()
string veriler int değere dönüşmediği için bu hatayı aldık.
4. IndexError: Bir liste veya dizinde olmayan bir elemana erişmeye çalıştığımızda bu hatayı alıyoruz. Örnek olarak:
Python:
liste = [1, 2, 3]
print(liste[10]) # liste içinde 10 olmamasına rağmen erişmeye çalıştık
Bunun sonucunda:
Kod:
IndexError: list index out of range
Hatası aldık. Yani Python bu listede bu eleman olmadığı için hatayı fırlattı.
5. KeyError: Python da sözlük içinde olmayan bir anahtara erişmeye çalışınca bu hatayı alırız. Örnek olarak:
Python:
k = {"isim": "void"}
print(k["yas"])
Burada yas olmadığı halde erişmeye çalıştık ve bunun sonucunda:
Kod:
IndexError: list index out of range
Hatasını verdi. Yani sözlük içinde anahtar kelime olmadığı için Python direkt hata verdi.
6. ZeroDivisionError: Sayılar sıfıra bölünmediği için eğer bir sayıyı sıfıra bölmeye çalışırsak hata alırız. Buna örnek vermeye gerek yok çünkü hatanın nedeni çok belli
7. FileNotFoundError: Açmaya çalıştığımız dosya dizinde yoksa bu hatayı alırız. Örnek olarak:
Python:
open("dosya.txt")
Bunun sonucunda:
Kod:
FileNotFoundError: [Errno 2] No such file or directory
Dizinde olmayan bir dosyaya erişmeye çalıştık ama olmadığı için hata aldık.
8. ModuleNotFoundError / ImportError: Yanlış bir modülü içe aktarmaya çalıştığımızda oluşan hatadır. Örnek olarak:
Python:
import modul
Bunun sonucunda:
Kod:
ModuleNotFoundError: No module named 'modul'
modul diye bir modül olmadığı için ama biz içe aktarmaya çalıştığımız için Python bu hatayı verdi. Aynı şekilde dışardan pip ile indirmediğimiz bir modülü kullanmaya çalışınca da bu hatayı alırız.
9. PermissionError: Erişim izni olmayan bir dosyayı okumaya ya da yazmaya çalıştığımızda oluşan hatadır. Örnek olarak:
Python:
open("/root/sifreler.txt")
Bunun sonucunda:
Kod:
PermissionError: [Errno 13] Permission denied
Yani bu dosyaya erişim iznimiz olmadığı halde okumaya çalıştık ve hata aldık.
10. OverflowError: Bu hata özellikle matematiksel işlemlerde belirli bir limiti aşınca ortaya çıkan bir hatadır. Örnek olarak:
Python:
import math
math.exp(1000)
Bunun sonucunda:
Kod:
OverflowError: math range error
İşlem hacmini aştığımız için bu hatayı aldık.
Bu hatalar Python da sıkça karşılaşılan hata türleridir. Bu hata türlerinin hepsini try ve except blokları ile yakalamak mümkün. Yani kullanıcıya daha anlaşılır hatalar gösterebilmek için bu bloklar kullanılır.
Buraya kadar gelip okuduğunuz için teşekkür ederim. Kendinize iyi bakın






