2016-07-08 5 views
-1

Kann mir jemand dabei helfen? Ich bin ein Anfänger in Python und Programmierung. Vielen Dank. Ich habe diese TypeError: 'dict' Objekt ist nicht aufrufbar, wenn ich diese Funktion ausführen.Ich habe diesen Fehler beim Ausführen einer Funktion - TypeError: 'dict' Objekt ist nicht aufrufbar

def goodVsEvil(good, evil): 
GoodTeam = {'Hobbits':1, 'Men':2, 'Elves':3, 'Dwarves':3, 'Eagles':4, 'Wizards':10} 
EvilTeam = {'Orcs':1, 'Men':2, 'Wargs':2, 'Goblins':2, 'Uruk Hai':3, 'Trolls':5, 'Wizards':10} 
Gworth = 0 
Eworth = 0 
for k, val in GoodTeam(): 
    Input = raw_input ('How many of {0} : ') 
    Gworth = Gworth + int(Input) * val 
for k, val in EvilTeam(): 
    inp = raw_input ('How many of {0} : ') 
    Eworth = Eworth + int(inp) * val 
if Gworth > Eworth: 
    return 'Battle Result: Good triumphs over Evil' 
if Eworth > Gworth: 
    return 'Battle Result: Evil eradicates all trace of Good' 
if Eworth == Gworth: 
    return 'Battle Result: No victor on this battle field' 
+1

Bitte immer mindestens den letzten Absatz eines Tracebacks mit angeben, bei welcher * Zeile * der Fehler aufgetreten ist. – MisterMiyagi

+1

@Strawmelon Wenn eine der Antworten Ihr Problem behandelt (http://stackoverflow.com/help/someone-answers), beachten Sie bitte [akzeptieren] (http://meta.stackexchange.com/questions/5234) indem Sie auf das Häkchen/Häkchen links neben der Antwort klicken und es grün drehen. Dies markiert die Frage als zu Ihrer Zufriedenheit gelöst und vergibt [Reputation] (http://stackoverflow.com/help/whats-reputation) sowohl an Sie als auch an die Person, die geantwortet hat. – MattDMo

Antwort

4

Diese Klammern sind nicht notwendig. Sie beabsichtigen, .items() zu verwenden, die Sie auf den Schlüssel und Werte Ihres Wörterbuch iterieren erlaubt:

for k, val in GoodTeam.items(): 
    # your code 

Sie diese Änderung auch für EvilTeam replizieren soll.

+0

Danke !!! Es klappt. – Strawmelon

2

Wie der Fehler sagt, GoodTeam ist ein Diktat, aber Sie versuchen, es zu nennen. Ich denke du meinst seine items Methode aufzurufen:

for k, val in GoodTeam.items(): 

Das gleiche gilt für BadTeam wahr ist.

Hinweis Sie haben andere Fehler; Sie verwenden die String-Format-Methode, haben aber nichts angegeben, um sie tatsächlich zu formatieren.

+0

Danke! Das ist, was ich will . – Strawmelon

Verwandte Themen