Il metodo range() accetta solo valori interi come parametro. Se provi a utilizzare il metodo range()
con un valore stringa, incontrerai il "TypeError: ‚Äòstr‚Äô l’oggetto non può essere interpretato come un numero intero" error.
Questa guida spiega perché potresti riscontrare questo errore e cosa significa. Esamineremo uno scenario di esempio per aiutarti a comprendere questo problema e risolverlo nel tuo programma.
TypeError: ‚Äòstr‚Äô l’oggetto non può essere interpretato come un intero
Il metodo range()
crea un elenco di valori in un particolare intervallo. è comunemente usato con un ciclo for per eseguire un certo numero di iterazioni.
Il metodo accetta solo valori interi come argomenti. Questo perché i valori creati da range()
sono interi. Considera il seguente programma:
Il nostro programma stampa cinque interi sulla console:
Se range()
accettasse stringhe, sarebbe più difficile per la funzione determinare quale intervallo di numeri dovrebbe essere creato. Ecco perché devi sempre specificare numeri interi come argomenti. Nell’esempio sopra, 5 e 10 erano le nostre argomentazioni.
Uno scenario di esempio
Costruiremo un programma che permetta a una pizzeria di visualizzare i nomi e i prezzi dei più pizze popolari nel loro menu. Per iniziare, definisci due elenchi che memorizzano le informazioni con cui funzionerà il nostro programma:
Questi elenchi sono paralleli e vengono visualizzati in ordine di popolarità di una pizza. Ciò significa che i valori in una posizione particolare nell’elenco corrispondono tra loro. Ad esempio, il prezzo di un "Brie and Chive" la pizza costa $ 9,50.
L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a 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.
Il nostro prossimo compito è chiedere l’utente quante pizze desidera visualizzare. Possiamo farlo usando un’istruzione input():
Ora sappiamo il numero di pizze di cui l’utente sta cercando informazioni, possiamo usare un for loop per stampare ogni pizza e il suo prezzo sulla console:
Il nostro programma stampa un messaggio contenente il nome di ogni pizza e il prezzo di quella pizza. Il nostro ciclo si interrompe quando ha ripetuto il numero di pizze che un utente ha richiesto di visualizzare sulla console.
Eseguiamo il nostro programma e vediamo se funziona:
Il nostro programma restituisce un errore nella riga di codice in cui definiamo il nostro ciclo for.
La soluzione
Abbiamo creato un ciclo for che esegue un particolare insieme di tempi a seconda del valore che l’utente ha inserito nella console.
Il problema con il nostro codice è che input()
restituisce una stringa, non un intero. Ciò significa che la nostra istruzione range()
sta cercando di creare un intervallo di valori utilizzando una stringa, il che non è consentito. Questo è ciò che il nostro codice ha valutato nel nostro programma:
Per correggere questo errore, dobbiamo convertire "to_display" a un numero intero. Possiamo farlo usando il metodo int()
:
"to_display" ora è un numero intero. Ciò significa che possiamo utilizzare il valore per creare un intervallo di numeri. Eseguiamo il nostro codice:
Il nostro codice stampa correttamente le informazioni che abbiamo richiesto. Possiamo vedere i nomi delle due pizze più popolari e i prezzi di quelle pizze.