Python'da en sık karşılaşılan hatalardan (bkz: SyntaxError: invalid syntax ve ZeroDivisionError: division by zero hataları) birisi de valueerror hatalarıdır ve çoğunlukla hatalı veri dönüşümlerinden kaynaklanırlar. Aşağıda bir aslında doğru çalışan bir python kodu örneğinin kullanıcı tarafından nasıl hatalı olarak kullanılabileceği bir örnek göstermek istiyorum.
Kodlar oldukça basit, kullanıcı bir sayı yazıyor, python da kullanıcı tarafından yazılan sayıyı değişken olarak saklıyor ve bu sayıya 5 ekleyerek print fonksiyonu ile yazdırıyor.
Kodlar:
sayi = int(input("Lütfen bir sayı yazın > "))
print(sayi+5)
Doğru Kullanım:
Lütfen bir sayı yazın > 6
11
Oldukça basit ve sorunsuz çalışan bir kod değil mi? şimdi aynı kodu çalıştırarak farklı bir şey yazalım:
Hatalı Kullanım:
Lütfen bir sayı yazın > selam
Sonuç:
sayi = int(input("Lütfen bir sayı yazın > "))
ValueError: invalid literal for int() with base 10: 'selam'
Python'a diyoruz ki selam yazısını tamsayıya çevir ve 5 ekleyerek yazdır, o da selam yazısının bir sayıya dönüştürülemeyeceğini söylüyor ve bu işleme de yazılım dilinde dönüşüm hatası (conversion error) adı veriliyor. Kullanıcılar her türlü değerleri girebilecekleri için bkz: Python'da try-except kullanmak