Python aucun

Avec Python, vous ne pouvez itérer sur un objet que si cet objet a une valeur. En effet, les objets itérables n’ont qu’un élément suivant auquel on peut accéder si leur valeur n’est pas égale à None. Si vous essayez d’itérer sur un objet None, vous rencontrez l’erreur TypeError : ‚ÄòNoneType‚Äô object is not iterable error.

Dans ce guide, nous expliquons ce que signifie cette erreur et pourquoi vous pouvez la rencontrer. Nous passons en revue un exemple pour vous aider à résoudre cette erreur Python courante.

TypeError : ‚ÄòNoneType‚Äô l’objet n’est pas itérable

Pour qu’un objet soit itérable, il doit contenir une valeur. Une valeur None n’est pas itérable car elle ne contient aucun objet. Aucun représente une valeur nulle.

Il existe une différence entre un objet Aucun et un itérable vide. Cette erreur n’est pas générée si vous avez une liste ou une chaaîne vide.

C’est parce que listes et strings ont un type de données itérable. Lorsque l’interpréteur Python rencontre une liste vide, il n’y parcourt pas car il n’y a pas de valeurs. Python ne peut pas itérer sur une valeur None donc l’interpréteur renvoie une erreur.

Cette erreur est courante lorsque vous déclarez une fonction et oubliez de renvoyer une valeur.

Un exemple de scénario

Écrivons un programme qui prend une liste de noms dՎtudiants et filtre ceux qui commencent par "E". Nous imprimerons ces valeurs sur la console.

Commencez par définir une fonction qui filtre les étudiants‚Äô noms :

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez associé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Cette fonction parcourt chaque élément dans les "class_names‚" liste en utilisant une boucle for. Pour chaque élément, notre boucle vérifie si l’élément commence par la lettre "E". Si c’est le cas, ce nom est ajouté aux "new_class_names‚" list.

Ensuite, écrivez une fonction qui parcourt notre nouvelle liste et imprime chaque valeur sur la console :

Ici, nous déclarons une liste d’étudiants par lequel notre programme doit rechercher. Nous transmettons cette liste d’étudiants via notre fonction filter_students :

Ce code exécute la fonction filter_students qui trouve tous les étudiants dont le nom commence par "E". La liste des étudiants dont les noms commencent par "E" est appelée student_e_name. Ensuite, nous appelons notre fonction show_students pour afficher la nouvelle liste des étudiants :

Exécutons notre code et voyons ce qui se passe :

Notre code renvoie un message d’erreur.

La solution

Lorsque nous essayons d’itérer sur les variable class_names dans le show_students, notre code détecte une valeur None et génère une erreur. C’est parce que la valeur que nous avons passée en tant que "class_names‚" est Aucun.

Cette erreur est due au fait que notre fonction filter_students ne renvoie pas de valeur. Lorsque nous attribuons le résultat de la fonction filter_students à la variable student_e_name, la valeur None est définie.

Pour résoudre cette erreur, nous devons renvoie une valeur dans notre fonction filter_students :

Ce code renvoie la valeur de new_class_names au programme principal.< br>

Exécutons notre code pour voir si cela fonctionne :

Notre code imprime maintenant avec succès les noms des étudiants dont les noms commencent par "E".

√âviter l’exception NoneType

Techniquement, vous pouvez éviter l’exception NoneType en vérifiant si une valeur est égale à None avant d’itérer sur cette valeur. Considérez le code suivant :

La fonction "show_students()‚" s’exécute avec succès car nous vérifiez si class_names est une valeur None avant d’essayer de l’itérer. Ce n’est pas une meilleure pratique tice dans la plupart des cas car la cause d’une erreur NoneType peut être un problème ailleurs dans votre code.

Si nous ajoutons dans le "n’est pas None‚" vérifier dans notre programme complet, nous ne savons pas que nous avons manqué une instruction return dans une autre fonction. C’est pourquoi si vous voyez cette erreur, il est préférable d’accepter l’exception plutôt que de la gérer à l’aide d’un "n’est pas Aucun" vérifier.



Conclusion

Le TypeError : ‚ÄòNoneType‚Äô objet n’est pas itérable erreur est générée lorsque vous essayez d’itérer sur un objet dont la valeur est égale à Aucun.

Pour résoudre cette erreur, assurez-vous que toutes les valeurs que vous essayez de iterate over ont reçu un objet itérable, comme une chaaîne ou une liste. Dans notre exemple, nous avons oublié d’ajouter un "retour‚" instruction à une fonction. Cela a fait que la fonction a renvoyé None au lieu d’une liste.

Maintenant, vous êtes prêt à résoudre cette erreur Python courante dans votre propre code.

"Career Karma est entré dans ma vie quand j’en avais le plus besoin et m’a rapidement aidé à participer à un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"

Venus, ingénieur logiciel chez 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