2016-04-12 15 views
0

Ich bin ein Anfänger Coder und ich habe dieses Spiel, das ich mache, aber mein Problem ist, dass in meinem Spiel der Benutzer Punkte hat, die sie im Kampf ausgeben können. Und es wird die Punktevariable abhängig davon, wie viel Sie ausgeben, aktualisieren.Antworten auf meine globalen Variablen?

global Points 
    Points = int(100) 
def Combat(): 
    print('how much points would you spend(higher points = higher chance of winning') 
    a9 = int(input('>')) 
    Points = int(Points)- int(a9) 
    global Points 
    print('You have ',Points,' points') 

Aber aus irgendeinem Grund ändert es nicht die globale Punktvariable, irgendwelche Antworten? Hat das eine Antwort? Oder ist es ungelöst?

+0

Die angegebene Antwort ist absolut korrekt und löst Ihr Problem mit dem Oszilloskop vollständig! Ich würde empfehlen, die Seite der objektorientierten Programmierung von Python zu erforschen, um vollständig zu verstehen, was die Sprache so stark macht! Klassen sind eine gute Möglichkeit, Probleme mit dem Oszilloskop zu vermeiden und die erneute Eingabe erheblich zu reduzieren! Viel Glück, beste Wünsche! – TheLazyScripter

Antwort

3

Sie müssen die global Points kommen, bevor Sie es einen Wert innerhalb der Funktion zuweisen, andernfalls Sie eine Points verwenden, die auf die Funktion lokal ist und versteckt die globalen Punkte Sie verwenden möchten:

Points = 100 

def Combat(): 
    print('how much points would you spend(higher points = higher chance of winning') 
    a9 = int(input('>')) 
    global Points 
    Points = Points - int(a9) 
    print('You have ',Points,' points') 

Auch , Ihre anfängliche Verwendung von global Points wird nicht benötigt, da außerhalb einer Funktion automatisch der globale Gültigkeitsbereich ist.

Verwandte Themen