2014-04-04 75 views
0
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',那麼程序應該認識到那裏有一個字符串並將其定義爲'feedback',然後顯示它以向用戶顯示他們的反饋描述符'值'需要一個'字典'對象,但收到'int'/'str'python

我想將'feedback'定義爲某個鍵的值(在這種情況下鍵是%log,可能是用戶的名字,例如'亞光'),但是當我嘗試執行此操作時,我收到錯誤:

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

我很困惑,爲什麼這不起作用。 「反饋」不應該簡單地定義爲鏈接到密鑰的價值?舉例來說,在我的字典裏,鍵「Matt1」的值是「幹得好!」,但是當程序試圖收集這些它給我的錯誤:

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

我很困惑,爲什麼程序需要一個字典對象。有什麼辦法可以解決這個問題嗎?對不起,如果解釋有點低於標準桿。

回答

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) 

希望這有助於

+0

非常感謝,這工作:) – user3112327

相關問題