【问题标题】:Why won't my program define the variable even after using a return statement?为什么即使在使用 return 语句后我的程序也不会定义变量?
【发布时间】:2021-06-10 16:24:28
【问题描述】:

我目前正在hackerrank.com (https://www.hackerrank.com/challenges/finding-the-percentage/problem) 上做一个关于根据学生成绩找到百分比的挑战。

if __name__ == '__main__':
    n = int(input())
    student_marks = {}
    for _ in range(n):
        name, *line = input().split()
        scores = list(map(float, line))
        student_marks[name] = scores
    query_name = input()
over = len(scores)


def average_score():
    average = 0
    if query_name == _ in name:
        for scores in student_marks:
            for grade in scores:
                average = average + grade
            return average
        
average_score()
print(average / over)

我很难理解为什么即使在使用 return 语句后程序也无法识别变量(平均值)。

Traceback (most recent call last):
  File "Solution.py", line 22, in <module>
    print(average / over)
NameError: name 'average' is not defined

每当我尝试运行程序时,就会弹出一个 NameError。

【问题讨论】:

    标签: python-3.x return nameerror


    【解决方案1】:

    您没有存储对 average_score 的调用结果。改成这样:

    average = average_score()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 2013-12-22
      • 2021-03-19
      • 2012-06-07
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      相关资源
      最近更新 更多