2016-11-23 3 views
0

Я не могу понять, как печатать все элементы словаря! Я продолжаю получать ошибки, говоря, что он не определен.распечатать все элементы словаря? Python

Файл Я использую (mood.txt):

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

мой код:

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) 

Я пытаюсь напечатать все капризы внутри функции allMoods(). Всякий раз, когда я удаляю настроение с print(mood, moodDict[moods]), он печатает все имена отлично, но когда я вставляю настроение, он говорит, что он не определен.

Я попытался позвонить printMood(mood, moodDict) внутри allMoods(), но я не мог заставить это работать!

Как распечатать все настроения с их именем? Может кто поможет! Благодаря!

+3

Вы сказали 'для настроений в moodDict', поэтому' mood' не определен. Это должно быть «для настроения в настроении». – zondo

+0

Можете ли вы показать нам результат, которого вы ожидаете? – ettanany

ответ

0

У вас были moods и mood в этой рутине. Вам нужен только один из них. mood похоже лучший.

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

С учетом этого все работает. Он работает сейчас, потому что вы определили mood в цикле for, где ранее вы звонили на mood, но никогда не определяли и не устанавливали его ни на что.

+0

Большое вам спасибо! Теперь я понимаю :) – naraemee

Смежные вопросы