描述符'值'需要一个词典'对象但收到了' /' str'蟒蛇

时间:2014-04-04 09:03:31

标签: python dictionary

if 0 in dict.values(feedbackdict["%s" %log]):
    print ("Sorry, you have either not been left feedback for your spelling tesy yet or have not yet completed your spelling test. \nYou will be returned to the main menu.")
    LoggedInStudent(log)
else:
    feedback = dict.values(feedbackdict["%s" %log])
    print (feedback)

所以我要做的是确保如果用户没有收到任何反馈(这意味着密钥的值将是' 0',程序将识别此并返回用户到主菜单。但是,如果反馈不是' 0'那么程序应该认识到那里有一个字符串并将其定义为'反馈'然后显示它以显示用户的反馈意见。

我正在尝试定义'反馈'作为某个键的值(在这种情况下,键是%log,可以是用户的名称,例如' matt')但是当我尝试执行此操作时,我收到了错误:

TypeError: descriptor 'values' requires a 'dict' object but received a 'int'

我很困惑为什么这不起作用。不应该反馈'只是被定义为链接到键的值?例如,在我的字典中,关键字' Matt1'有价值'干得好!',但当程序试图收集它时,它给了我错误:

TypeError: descriptor 'values' requires a 'dict' object but received a 'str'

我很困惑为什么程序需要一个dict对象。有什么方法可以解决这个问题吗?对不起,如果说明有点低于标准。

1 个答案:

答案 0 :(得分:1)

这很简单。从我注意到的,我认为你以错误的方式使用你的字典对象。澄清...

如果您的dict变量的名称为feedbackdict,当您只需将其dict.values(feedbackdict[key])作为feedbackdict[key]访问时,为什么要将其作为TypeError访问。

您获得dict.values异常,因为dict是dict类的未绑定方法,并且int实例仅作为它的参数(您已通过)它只有str一次而另一个feedback = feedbackdict["%s" % log] if feedback == 0: print("Sorry, you have either not been left feedback for your spelling test yet or have not yet completed your spelling test. \nYou will be returned to the main menu.") LoggedInStudent(log) else: print(feedback)

尝试这样的事情......

{{1}}

希望这有帮助