我从代码中收到此错误,“UnboundLocalError:在赋值之前引用的本地变量'最低'”。我为什么要这个?在这种情况下,“在转让前引用”真的意味着什么?因为我认为只有在定义了“得分”变量后才将变量分配给“最低”。任何帮助,将不胜感激。
def main():
scores = get_score()
total = get_total(scores)
lowest -= min(scores)
average = total / (len(scores) - 1)
print('The average, with the lowest score dropped is:', average)
def get_score():
test_scores = []
again = 'y'
while again == 'y':
value = float(input('Enter a test score: '))
test_scores.append(value)
print('Do you want to add another score? ')
again = input('y = yes, anything else = no: ')
print()
return test_scores
def get_total(value_list):
total = 0.0
for num in value_list:
total += num
return total
main()
答案 0 :(得分:3)
你正在使用 - =,这需要一个起始值。但是你没有提供起始值。在上下文中,您似乎意味着使用=而不是。
答案 1 :(得分:3)
那是因为在main()中你说的是
lowest -= min(scores)
基本上最低=最低 - 分(分数)。由于您之前没有设置最低值,因此您将收到该错误
答案 2 :(得分:1)
未定义您的最低变量。您使用"最低 - =最小(分数)"这意味着从最低值中减去最小值(分数),但尚未存在最低值。基于我想猜测的变量的名称:
def main():
scores = get_score()
total = get_total(scores)
lowest = min(scores)
average = total / (len(scores) - 1)
print('The average, with the lowest score dropped is:', average)