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.