ValueError: invalid literal for int() with base 10, sayıya çevrilemeyen bir metni int() ile dönüştürmeye çalıştığında oluşur.

Neden olur?

int('abc') veya int('12x') gibi ifadeler sayı olmadığı için çevrilemez. Boşluk veya harf içeren metinler de sorun çıkarır.

Hatalı kod

yas = int('sekiz')   # ValueError

Doğru kod

metin = '8'
if metin.isdigit():        # once sayi mi diye kontrol et
    yas = int(metin)
    print(yas)
else:
    print('Lutfen bir sayi gir')

Kontrol listesi

  • Çevirmeden önce metin.isdigit() ile kontrol et.
  • Ondalık sayılar için float('3.14') kullan.
  • Baştaki/sondaki boşlukları metin.strip() ile temizle.

Python derslerimizle adım adım pratik yapabilirsin.