python letterale non valido per int con base 10

Python è bravo a convertire i valori in diversi tipi di dati. Puoi convertire stringhe in interi, interi in stringhe, float in interi, per citare alcuni esempi. C’è una conversione che a Python non piace: cambiare un float strutturato come stringa in un intero.

In questo tutorial, discutiamo di ValueError: valore letterale non valido per int() con errore in base 10 e perché viene generato. Esaminiamo un esempio di questo errore per aiutarti a capire come puoi risolverlo nel tuo codice.

Il problema: ValueError: valore letterale non valido per int() con base 10

Let&rsquo ;s inizia leggendo il nostro messaggio di errore:

I messaggi di errore sono composti da due parti. La prima parte ci dice il tipo di errore che stiamo affrontando. Viene generato un ValueError quando c’è un problema con il valore memorizzato in un particolare oggetto.

Il nostro messaggio di errore ci dice che c’è un letterale non valido per un numero intero in base 10. Ciò significa che il valore che sono passati attraverso un metodo int() non possono essere convertiti.

In Python, puoi passare numeri formattati come stringhe in float() e int().

Il int() non ti consente di passare un float rappresentato come una stringa. Se si tenta di convertire qualsiasi valore di stringa non formattato come intero, viene generato questo errore.

Ciò significa che non è possibile convertire un numero a virgola mobile in una stringa in un numero intero. Inoltre, non è possibile convertire le lettere in un numero intero (a meno che non si utilizzino lettere con un significato speciale, come "inf").

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo frequentando un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Qui creiamo un programma che calcola se una caffetteria ha abbastanza caffè in stock per servire i propri clienti per un giorno. Il nostro campo di input deve accettare numeri decimali perché i sacchetti possono essere pieni per metà, per un quarto e cosi via.

Convertiamo il valore che un utente inserisce in un numero intero perché non abbiamo bisogno di essere precisi fino al livello di mezzo sacco e quarto di sacco.

Iniziamo chiedendo all’utente di inserire quanti sacchetti di caffè sono rimasti utilizzando un’istruzione input():

Successivamente, convertiamo questo valore in un numero intero. Utilizziamo quindi una dichiarazione "if" per verificare se la caffetteria ha caffè a sufficienza. Se la caffetteria ha più di 10 buste, ne hanno abbastanza per la giornata, altrimenti no.

Scriviamo questo nel nostro programma:

Eseguiamo il nostro codice e vediamo cosa succede:

Quando proviamo a scrivere un numero decimale nel nostro programma, viene restituito un errore.

Questo errore è causato dal tentativo di convertire "7.4: in un numero intero. Il valore "7.4" è formattato come una stringa. Python non può convertire un numero in virgola mobile in una stringa in un numero intero.

Per superare questo problema, dobbiamo convertire il valore che un utente inserisce in un numero in virgola mobile. Quindi, possiamo convertirlo in un numero intero.

Possiamo farlo usando le istruzioni float() e int(). La funzione int() restituisce un numero intero. La funzione float() restituisce una rappresentazione in virgola mobile di un float.

Il nostro codice converte prima il valore di "coffee_bags" ad un galleggiante. Successivamente, converte quel valore in un numero intero. Proviamo a eseguire di nuovo il nostro codice:

Il nostro codice funziona correttamente. Ora che abbiamo convertito "coffee_bags" in un float, il nostro programma può convertire il valore che un utente inserisce in un intero.

Conclusione

The Python ValueError: viene generato un valore letterale non valido per int() con errore di base 10 quando si tenta di convertire un valore di stringa che non è formattato come un intero.

Per risolvere questo problema, puoi utilizzare il metodo float() per convertire un numero a virgola mobile in una stringa in un intero. puoi usare int() per convertire il tuo numero in un numero intero.

Se questo non funziona, assicurati che il valore di una stringa non contenga lettere. Le stringhe con lettere non possono essere convertite in un numero intero a meno che quelle lettere non abbiano un significato speciale in Python.

Ora sei pronto per risolvere questo errore comune di Python come uno sviluppatore esperto!