我似乎无法弄清楚如何打印字典的所有元素!我不断收到错误,说它没有定义。
我正在使用的文件(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()
,但我无法让它工作!
如何用他们的名字打印每个人的心情?谁能帮忙!谢谢!
答案 0 :(得分:0)
此例程中您有moods
和mood
。你只需要其中一个。 mood
似乎最好。
def allMoods(moodDict):
for mood in moodDict:
print(mood, moodDict[mood])
随着这种变化,一切正常。它现在有效,因为您已在mood
循环中定义了for
,之前您在mood
调用,但从未将其定义或设置为任何内容。