【问题标题】:Python 3- assigns grades [duplicate]Python 3-分配成绩[重复]
【发布时间】:2016-08-02 04:55:57
【问题描述】:

• 定义一个函数以提示用户输入有效分数,直到他们输入标记值 -999。让这个函数创建并返回这些分数的列表。不要在列表中存储 -999! • 让 main( ) 然后将此列表传递给第二个函数,该函数遍历分数列表并打印它们以及相应的成绩。

我在使用 getGrade 函数时遇到问题,它给出了 i in grades 的错误:未定义名称'grades'。

def main():
   grade = getScore()
   print(getGrade(grade))

def getScore():
   grades = []
   score = int(input("Enter grades (-999 ends): "))
   while score != -999:
      grades.append(score)
      score = int(input("Enter grades (-999 ends): "))
   return grades

def getGrade(score):
   best = 100
   for i in grades:
      if score >= best - 10:
         print(" is an A")
      elif score >=  best - 20:
         print(score, " is a B")
      elif score >= best - 30:
         print(score, " is a C")
      elif score >= best - 40:
         print(score, " is a D")
      else:
         print(score, "is a F")

main()

【问题讨论】:

  • 你的函数被命名为getScore,而不是getScores

标签: python python-3.x for-loop main


【解决方案1】:

您将函数定义为getScore(),但您正在调用getScores(),因此正如预期的那样,这会引发错误,因为您正在调用的函数实际上并不存在/尚未定义。

附录:既然你改变了你的问题,在修正了之前的错误之后。

同样,您正在调用 grades,但 grades 是在您尝试迭代 grades 的函数范围内的其他函数中定义的而不是。 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多