2016-10-12 7 views
0

Dies ist der Fehler, den ich erhalten:Typeerror: ‚NoneType‘ Objekt ist nicht Iterable bei dem Versuch, einen Wert None zu überprüfen

line 16, in main 
    definition, data = get_name() 
TypeError: 'NoneType' object is not iterable 

ich für None Typ hier überprüfen:

definition = get_word (name, gender) 

if definition is None: 
    print ("\"" + non_lower + "\"", "not found.") 
else: 
    return definition 

Hier der Code, der None wenn der Suchbegriff nicht gefunden wird zurückkehren:

if x and new_line is not None: 
    return new_line, x 

ich kehre 2 v aber es gibt einen Wert zurück und wenn ich versuche, diesen Wert für eine None zu überprüfen, erhalte ich den Fehler. Wenn es trotzdem die Variable für None richtig überprüfen sollte, wenn nichts zurückgegeben wird, kann ich eine Nachricht präsentieren?

+2

Ihre Frage ist etwas unklar. Unabhängig davon sollte die aufgerufene Funktion (die Sie nicht angezeigt haben) immer die gleiche Anzahl von Werten zurückgeben, auch wenn beide "None" sind - und Sie sollten immer mit der Erwartung rechnen, dass viele Werte zurückgegeben werden. – martineau

+4

Bitte geben Sie [ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) an. – CAB

Antwort

0

Sie haben ein doppeltes Negativ in dem Teil, der None für die Überprüfung später zurückgibt. Vielleicht versuchen:

if x and new_line: 
    return new_line, x 
else: 
    return None, None 

Dann, wenn für None Überprüfung für None nicht wirklich überprüfen, überprüfen Sie die Variable ist etwas anderes als None, dann None mit der else-Anweisung fangen?

if definition: 
    return definition 
else: 
    print ("\"" + non_lower + "\"", "not found.") 
Verwandte Themen