2017-12-05 1 views
-2

Hier ist ein Code im verwenden in einem größeren Programm über Bowling-Anzeigetafeln, ich habe eine fast identische Code-Schnipsel, die perfekt funktioniert, die den Gewinner mit der Max deklariert, aber ich bekomme weiterhin einen Fehler auf diesem Bit. Es sagt, dass der "minname" in der Druck-Code vor der Zuweisung referenziert wird, aber ich kann nicht für das Leben von mir herauszufinden, was los ist. FYI das ist Code in Python.UnboundStackError, vor der Zuweisung referenziert? Python

print() 
#Print a message to declare the loser (min)    
for i in range(total-1): 
    if bowlerscorelist[i] < bowlerscorelist[i+1]: 
     minscore = bowlerscorelist[i] 
     minname = bowlernamelist[i] 
print(minname, "got the lowest score with: ", minscore) 

Irgendwelche Hilfe?

+1

Vermutlich haben Sie keine Elemente in der Liste, deren Bedingung erfüllt ist. –

+0

Es ist unmöglich zu sagen, dass der Code, den Sie uns geben, nicht in sich abgeschlossen ist, so dass er aus Gründen, die nicht mit dem Problem zusammenhängen, nicht funktioniert (z. B. wird ein "NameError" für "total" angegeben). Aber ich * vermute *, dass du entweder nie in deine for-Schleife gehst, weil 'total-1 <, * oder * deine' if' Bedingung immer fehlschlägt, also wird 'minname' niemals zugewiesen. –

Antwort

0

Die if-Anweisung wird nicht eingegeben (Bedingung nicht erfüllt), daher werden "minscore" und "minname" vor der Zuweisung referenziert.

minname = '' 
minscore = 0 
for i in range(total-1): 
    if bowlerscorelist[i] < bowlerscorelist[i+1]: 
     minscore = bowlerscorelist[i] 
     minname = bowlernamelist[i] 
print(minname, "got the lowest score with: ", minscore) 
Verwandte Themen