2017-05-11 5 views
-1

Ich versuche eine sehr einfache Kampffunktion für ein textbasiertes Abenteuerspiel zu erstellen und mein Problem ist, dass ich gerade in Bezug auf diese Zeile einen Fehler löse.Python - Kann Funktionsaufruf nicht zuweisen?

random.choice (gold_dropped) + = Gold

Der betreffende Fehler ist ein Syntaxfehler: kann nicht zuordnen Anruf Fehler funktionieren und ich bin ratlos, was das Problem verursacht und wie man es beheben.

Jede Rückmeldung würde sehr geschätzt werden.

Die Funktion, in der der Fehler liegt, ist unten dargestellt.

def Kampf():

enemy_health = (random.choice(random_enemy_Health)) 

enemy_attack = (random.choice(random_enemy_Attack)) 
print("You are fighting a" ,random.choice(enemies), "with an attack amount of" ,enemy_attack, "and a health amount of" ,enemy_health,".")  
while (enemy_health > 0): 
    enemy_attack - health; 

while (health > 0): 
    attack - enemy_health; 

if enemy_health == 0: 
    print("The enemy has been defeated!") 
    random.choice(gold_dropped) += gold 

if health == 0: 
    print("You have been defeated! Return back to the Hub and re-prepare yourself!") 
    hub_travel() 
+4

Sie wahrscheinlich bedeuten 'Gold + = random.choice (gold_dropped)'. – jasonharper

Antwort

0

Mit dem Befehl random.choice (gold_dropped) + = Gold, Sie den Wert der Variablen "Gold" zu etwas hinzufügen, das "existiert nicht" (es muss Sei eine existierende Variable, Sie können dem anonymen Ergebnis einer Funktion nichts zuweisen). Deshalb beschwert sich der Python-Interpreter.

Sie müssen lediglich eine Zwischengröße (Gültigkeit des Befehls unten mit Python 3.5 geprüft) verwenden:

if enemy_health == 0: 
    print("The enemy has been defeated!") 
    choice_of_gold_dropped = random.choice(gold_dropped) + gold 
... 
Verwandte Themen