Python nessuno

Con Python, puoi iterare su un oggetto solo se quell’oggetto ha un valore. Questo perché gli oggetti iterabili hanno solo un elemento successivo a cui è possibile accedere se il loro valore non è uguale a Nessuno. Se provi a eseguire l’iterazione su un oggetto None, riscontri il TypeError: ‚ÄòNoneType‚Äô l’oggetto non è iterabile errore.

In questa guida, parliamo di cosa significa questo errore e perché potresti riscontrarlo. Vediamo un esempio per aiutarti a risolvere questo errore Python comune.

TypeError: ‚ÄòNoneType‚Äô l’oggetto non è iterabile

Perché un oggetto sia iterabile, deve contenere un valore. Un valore None non è iterabile perché non contiene alcun oggetto. None rappresenta un valore null.

C’è una differenza tra un oggetto None e un iterabile vuoto. Questo errore non viene generato se hai un elenco vuoto o una stringa.

Questo perché elenchi e stringhe hanno un tipo di dati iterabile. Quando l’interprete Python incontra un elenco vuoto, non lo ripete perché non ci sono valori. Python non può iterare su un valore None, quindi l’interprete restituisce un errore.

Questo errore è comune quando dichiari una funzione e dimentichi di restituire un valore.

Uno scenario di esempio

Scriviamo un programma che prenda un elenco di nomi di studenti e filtri quelli che iniziano con "E". Stamperemo questi valori sulla console.

Inizia definendo una funzione che filtra gli studenti’ nomi:

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.

Questa funzione scorre ogni elemento nella sezione "class_names" list usando un ciclo for. Per ogni articolo, il nostro ciclo controlla se l’articolo inizia con la lettera "E". In caso affermativo, quel nome viene aggiunto a "new_class_names" list.

Successivamente, scrivi una funzione che attraversi il nostro nuovo elenco e stampi ogni valore sulla console:

Qui dichiariamo un elenco di studenti attraverso il quale il nostro programma dovrebbe cercare. Passiamo questo elenco di studenti attraverso la nostra funzione filter_students:

Questo codice esegue la funzione filter_students che trova tutti gli studenti i cui nomi iniziano con "E". L’elenco degli studenti i cui nomi iniziano con "E" è chiamato student_e_name. Successivamente, chiamiamo la nostra funzione show_students a mostra il nuovo elenco di studenti:

Eseguiamo il nostro codice e vediamo cosa succede:

Il nostro codice restituisce un messaggio di errore.

La soluzione

Quando proviamo a scorrere la variabile class_names nel show_students, il nostro codice rileva un valore None e genera un errore. Questo perché il valore che abbiamo passato come "class_names" è Nessuno.

Questo errore è causato perché la nostra funzione filter_students non restituisce un valore. Quando assegniamo il risultato della funzione filter_students alla variabile student_e_name, viene impostato il valore None.

Per risolvere questo errore, dobbiamo restituisce un valore nella nostra funzione filter_students:

Questo codice restituisce il valore di new_class_names al programma principale.< br>

Eseguiamo il nostro codice per vedere se funziona:

Il nostro codice ora stampa con successo i nomi degli studenti i cui nomi iniziano con "E".

Evitare l’eccezione NoneType

Tecnicamente, puoi evitare l’eccezione NoneType controllando se un valore è uguale a None prima di eseguire l’iterazione su quel valore. Considera il seguente codice:

La funzione "show_students()" viene eseguita correttamente perché noi controlla se class_names è un valore None prima di provare a scorrere su di esso.Questo non è un miglior pra tica nella maggior parte dei casi perché la causa di un errore NoneType può essere un problema da qualche altra parte nel codice.

Se aggiungiamo "non è Nessuno" controlla nel nostro programma completo, non sappiamo di aver perso un’istruzione di ritorno in un’altra funzione. Ecco perché se vedi questo errore, è meglio accettare l’eccezione piuttosto che gestirla utilizzando un "non è Nessuno" controlla.



Conclusione

Il TypeError: ‚ÄòNoneType‚Äô l’oggetto non è iterabile viene generato un errore quando si tenta di eseguire l’iterazione su un oggetto il cui valore è uguale a Nessuno.

Per risolvere questo errore, assicurarsi che tutti i valori che si tenta di iterate over è stato assegnato un oggetto iterabile, come una stringa o un elenco. Nel nostro esempio, abbiamo dimenticato di aggiungere un "ritorno" dichiarazione a una funzione. Ciò ha fatto si che la funzione restituisse Nessuno invece di un elenco.

Ora sei pronto per risolvere questo comune errore Python nel tuo codice.

"Il Karma di carriera è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinare un bootcamp. Due mesi dopo la laurea, ho trovato il lavoro dei miei sogni in linea con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method