Python keine

Mit Python können Sie nur uber ein Objekt iterieren, wenn dieses Objekt einen Wert hat. Dies liegt daran, dass iterierbare Objekte nur ein nächstes Element haben, auf das zugegriffen werden kann, wenn ihr Wert ungleich None ist. Wenn Sie versuchen, uber ein None-Objekt zu iterieren, stoßen Sie auf den TypeError: ‘NoneType’ object is not iterable error.

In diesem Handbuch sprechen wir daruber, was dieser Fehler bedeutet und warum er auftreten kann. Wir gehen ein Beispiel durch, um Ihnen bei der Lösung dieses häufigen Python-Fehlers zu helfen.

TypeError: ‘NoneType’ Objekt ist nicht iterierbar

Damit ein Objekt iterierbar ist, muss es einen Wert enthalten. Ein None-Wert ist nicht iterierbar, da er keine Objekte enthält. None stellt einen Nullwert dar.

Es gibt einen Unterschied zwischen einem None-Objekt und einem leeren Iterable. Dieser Fehler wird nicht ausgelöst, wenn Sie eine leere Liste oder einen String haben.

Dies liegt daran, dass Listen und Strings haben einen iterierbaren Datentyp. Wenn der Python-Interpreter auf eine leere Liste stößt, iteriert er nicht daruber, da keine Werte vorhanden sind. Python kann keinen None-Wert durchlaufen, daher gibt der Interpreter einen Fehler zuruck.

Dieser Fehler tritt häufig auf, wenn Sie eine Funktion deklarieren und vergessen, einen Wert zuruckzugeben.

Ein Beispielszenario

Lasst uns ein Programm schreiben, das eine Liste von Schulernamen nimmt und diejenigen herausfiltert, die mit "E‚" beginnen. Wir geben diese Werte an die Konsole aus.

Definieren Sie zunächst eine Funktion, die die Schuler’ Namen:

81 % der Teilnehmer gaben an, dass sie sich nach der Teilnahme an einem Bootcamp sicherer in Bezug auf ihre Berufsaussichten im Tech-Bereich fuhlen. Werde noch heute zu einem Bootcamp eingeladen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Diese Funktion durchl√§uft jedes Element in den "Klassennamen‚" Liste mit einer for-Schleife. Fur jeden Artikel pruft unsere Schleife, ob der Artikel mit dem Buchstaben "E‚" beginnt. Ist dies der Fall, wird dieser Name zu "new_class_names‚" list.

Schreiben Sie als Nächstes eine Funktion, die unsere neue Liste durchgeht und jeden Wert an die Konsole ausgibt:

Hier deklarieren wir eine Liste von Schulern durch die unser Programm suchen soll. Wir ubergeben diese Liste von Schulern durch unsere filter_students-Funktion:

Dieser Code fuhrt die filter_students-Funktion aus, die alle Schuler findet, deren Namen mit beginnen "E‚". Die Liste der Schuler, deren Namen mit "E‚" beginnen, hei√üt Students_e_name. Als n√§chstes rufen wir unsere show_students-Funktion auf, um zeige die neue Schulerliste:

Lassen Sie uns unseren Code ausfuhren und sehen, was passiert:

Unser Code gibt eine Fehlermeldung zuruck.

Die Lösung

Wenn wir versuchen, die Variable class_names in der show_students-Funktion erkennt unser Code einen None-Wert und gibt einen Fehler aus. Dies liegt daran, dass der Wert, den wir als "class_names‚" ist None.

Dieser Fehler wird verursacht, weil unsere filter_students-Funktion keinen Wert zuruckgibt. Wenn wir das Ergebnis der Funktion filter_students der Variablen Students_e_name zuweisen, wird der Wert None gesetzt.

Um diesen Fehler zu beheben, mussen wir einen Wert in unserer filter_students-Funktion zuruckgeben:

Dieser Code gibt den Wert von new_class_names zuruck an das Hauptprogramm.< br>

Lassen Sie unseren Code ausfuhren, um zu sehen, ob er funktioniert:

Unser Code druckt nun erfolgreich die Namen der Schuler aus, deren Namen mit & beginnen ldquo;E‚".

Vermeiden der NoneType-Ausnahme

Technisch gesehen können Sie die NoneType-Ausnahme vermeiden, indem Sie prufen, ob ein Wert gleich None ist bevor Sie diesen Wert durchlaufen. Betrachten Sie den folgenden Code:

Die Funktion "show_students()‚" wird erfolgreich ausgefuhrt, weil wir √úberprufen Sie, ob class_names ein None-Wert ist, bevor wir versuchen, daruber zu iterieren Dies ist in den meisten F√§llen sinnvoll, da die Ursache eines NoneType-Fehlers ein Problem an einer anderen Stelle in Ihrem Code sein kann.

Wenn wir "ist nicht None‚" Schauen Sie sich unser vollst√§ndiges Programm an, wir wissen nicht, dass wir in einer anderen Funktion eine return-Anweisung ubersehen haben. Wenn Sie diesen Fehler sehen, akzeptieren Sie die Ausnahme daher am besten, anstatt sie mit einem "ist nicht keiner‚" uberprufen.



Schlussfolgerung

Der TypeError: ‘NoneType’ object is not iterable error wird ausgegeben, wenn Sie versuchen, uber ein Objekt zu iterieren, dessen Wert gleich None ist.

Um diesen Fehler zu beheben, stellen Sie sicher, dass alle Werte, die Sie versuchen iterate over wurden einem iterierbaren Objekt wie einem String oder einer Liste zugewiesen. In unserem Beispiel haben wir vergessen, eine "Ruckgabe‚" Anweisung zu einer Funktion. Dies fuhrte dazu, dass die Funktion None anstelle einer Liste zuruckgab.

Jetzt sind Sie bereit, diesen häufigen Python-Fehler in Ihrem eigenen Code zu lösen.

"Karriere Karma trat in mein Leben ein als ich es am dringendsten brauchte und half mir schnell bei einem Bootcamp. Zwei Monate nach meinem Abschluss fand ich meinen Traumjob, der meinen Werten und Lebenszielen entsprach!"

Venus, Software Engineer bei 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