2016-11-23 5 views
0

Ich kann nicht herausfinden, wie alle Elemente eines Wörterbuchs gedruckt werden! Ich bekomme immer wieder Fehler, dass es nicht definiert ist.alle Elemente eines Wörterbuchs drucken? Python

Die Datei Ich benutze (mood.txt):

happy, Jennifer Clause 
happy, Jake Foster 
sad, Jonathan Bower 
mad, Penny 
excited, Logan 
awkward, Mason Tyme 

mein Code:

def theFile(): 
    moodFile = open("mood.txt") 
    theMood = moodFile.readlines() 
    moodFile.close() 
    return(theMood) 

def makeTheDict(myFile): 
    moodDict = {} 

    for lines in myFile: 
     (mood, name) = lines.split(",") 

     moodDict[mood] = name.strip() 

    return(moodDict) 


def printMood(mood, moodDict): 

    if mood in moodDict: 
     print("The people who are", mood, ":", moodDict[mood]) 


def allMoods(moodDict): 

    #code I am having trouble with 
    for moods in moodDict: 
     print(mood, moodDict[moods]) 


def main(): 

    moodFile = theFile() 

    moodDict = makeTheDict(moodFile) 

    findMood = input("Which mood do you want to choose?: ") 
    printMood(findMood, moodDict) 

    allMoods(moodDict) 

ich alle Stimmungen innerhalb der Funktion allMoods() zu drucken versuche. Immer wenn ich Stimmung aus print(mood, moodDict[moods]) entferne, druckt es alle Namen gut aus, aber wenn ich die Stimmung einfüge sagt es, dass es nicht definiert ist.

Ich versuchte printMood(mood, moodDict) innerhalb allMoods() zu rufen, aber ich konnte das auch nicht zum Arbeiten bekommen!

Wie drucke ich alle Stimmungen mit ihrem Namen aus? Kann jemand helfen! Vielen Dank!

+3

Sie sagten 'für Stimmungen in moodDict', also ist' Stimmung' nicht definiert. Es sollte "für Stimmung in moodDict" sein. – zondo

+0

Können Sie uns das Ergebnis zeigen, das Sie erwarten? – ettanany

Antwort

0

Sie hatten moods und mood in dieser Routine. Du brauchst nur einen von ihnen. mood scheint am besten.

def allMoods(moodDict): 
    for mood in moodDict: 
     print(mood, moodDict[mood]) 

Mit dieser Änderung funktioniert alles. Es funktioniert jetzt, weil Sie mood in der for Schleife definiert haben, wo Sie zuvor mood aufgerufen haben, aber nie definiert oder auf nichts festgelegt haben.

+0

Vielen Dank! Ich verstehe jetzt :) – naraemee

Verwandte Themen