Python 用于循环加法器的问题

Python 用于循环加法器的问题,python,conditional-statements,Python,Conditional Statements,我试图创建下面参数描述的函数,但我一直得到以下输出值,不知道为什么 输出错误消息: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/<username>/Desktop/CS 1110/lab16/lab16.py", line 66, in letter_grades

我试图创建下面参数描述的函数,但我一直得到以下输出值,不知道为什么

输出错误消息:

Traceback (most recent call last):   
  File "<stdin>", line 1, in <module>   
  File "/Users/<username>/Desktop/CS 1110/lab16/lab16.py", line 66, in 
  letter_grades     
    if result[k] >= 90: 
KeyError: 'wmw2'
你设定

`result = {}`
所以,结果是空的。 然后在结果中为k循环结果。因此,循环只有零个元素要循环。 也许你想在adict中为k写作:

然后,您永远不会为结果赋值。在for循环中,您编写了adict[k]=。。。。 也许你想写结果[k]=

因此,这就产生了:

result = {}
for k in adict:
    if adict[k] >= 90:
        result[k] = 'A'
    elif adict[k] >= 80:
        result[k] = 'B'
    elif adict[k] >= 70:
        result[k] = 'C'
    elif adict[k] >= 60:
        result[k] = 'D'
    else:
        result[k] = 'F'
return result
您希望根据adict dict创建一个结果dict。因此,必须对adict创建条件,并对结果进行赋值


希望这能帮助您,询问任何问题。

对于结果中的k:在您将结果定义为空dict result={}之后。这个for循环永远不会运行。当通过adict循环时,如果要返回除{}而不是result={},do result=adict以外的任何内容,则必须向result添加值。因为result里面没有任何值,所以在执行'result[k]'时,Python无法访问result中k的值。make result=adict确实有效,但是在我试图创建一个新字典并添加到其中时,它会修改现有字典。这就是为什么我从result={}开始,因为我需要它成为我要添加到的新词典。谢谢,但我以前尝试过这个,并且不影响任何事情,我可以编辑我的问题以包含它。我编辑了我的答案以完成它。现在更准确了吗?谢谢你的帮助。。。不幸的是,我照你说的做了,现在得到了最近的回溯:File,第1行,在File/Users/dilan/Desktop/cs1110/lab16/lab16.py,第66行,如果result[k]>=90:keyrerror:'wmw2'我实现的字典是{'wmw2':55,'abc3':90,'jms45':86}我只是不明白为什么这仍然在发生,但感谢你迄今为止的所有帮助!你的字典是空的,所以你不能看。在你的声明中,你必须看一下你的遗言,如果情况属实,你就把这个项目添加到你的简历中。我会编辑我的答案,让它更清楚