
Det här felet dyker upp när du arbetar med Python-kod. Du försöker omvandla text till ett tal, men något går fel. Datorn säger att texten inte kan bli ett nummer. Felanmälan "invalid literal for int() with base 10" är faktiskt ett väldigt vanligt misstag för programmerare som är nya eller gamla.
Varför får du detta felmeddelande?
Felet uppstår när Python försöker konvertera en textsträng till ett heltal. Strängen innehåller något som inte är en siffra. Det kan vara bokstäver, mellanslag eller speciella tecken. Enkelt sätt att tänka på det: Python kan inte gissa vad en bokstav betyder som nummer.
Här är ett exempel som triggar felet:
int("123abc")
Python kan inte göra "123abc" till ett nummer. Bokstäverna är problemet. Ett annat exempel:
int("45 ")
Även mellanslag i slutet kan skapa problem (det är lite irriterande egentligen). Eller försöka omvandla en helt tom sträng:
int("")
Datorn vet inte vad en tom text ska betyda som nummer. Det är därför du får detta felmeddelande.
Hur fixar du problemet?
Lösning ett: Kontrollera strängen före konvertering
Kolla att strängen bara innehåller siffror innan du konverterar den:
text = "456"
if text.isdigit():
nummer = int(text)
else:
print("Text kan inte bli nummer")
Lösning två: Använd try-except för felhantering
Låt Python försöka konvertera. Om det misslyckas gör något annat istället:
try:
nummer = int("789xyz")
except ValueError:
nummer = 0
print("Kunde inte omvandla")
Det här är smart eftersom det fångar felet utan att programmet kraschar helt. Du kontrollerar helt enkelt vad som händer när något går fel.
Lösning tre: Rensa strängen först
Ta bort mellanslag innan du konverterar:
text = " 999 "
nummer = int(text.strip())
Funktionen `strip()` tar bort mellanslag från början och slutet. Nu fungerar konvertering utan problem.
Välj den lösning som passar din kod bäst. Kontroll före konvertering är säkrast om du är osäker. Try-except är flexiblare när du inte vet vad som kommer in från användaren.
Detta material är AI-assisterat. Ser du något som inte stämmer? Kontakta Bostadspark på [email protected].
