2015-10-06 87 views
0
def Get_Details(): 
    Student_Name = input("Enter the name of the student: ") 
    Coursework_Mark = int(input("Enter the coursework mark achieved by the student: ")) 
    while Coursework_Mark < 0 or Coursework_Mark >60: 
     print("Try again, remember the coursework mark is out of 60.") 
     Coursework_Mark = int(input("Enter the coursework mark achieved by the student: ")) 

    Prelim_Mark = int(input("Enter the prelim mark achieved by the student: ")) 
    while Prelim_Mark < 0 or Prelim_Mark > 90: 
     print("Try again, remember the prelim mark is out of 90.") 
     Prelim_Mark = int(input("Enter the prelim mark achieved by the student: ")) 

    return Student_Name, Coursework_Mark, Prelim_Mark 

def Calculate_Percentage(Coursework_Mark, Prelim_Mark): 

    Percentage = ((Coursework_Mark + Prelim_Mark)/150) * 100 

    if Percentage >= 70: 
     Grade = "A" 
    elif 60 >= Percentage <= 69: 
     Grade = "B" 
    elif 50 >= Percentage <= 59: 
     Grade = "C" 
    elif 45 >= Percentage <= 50: 
     Grade = "D" 
    else: 
     Grade = "No Award" 

    return Percentage, Grade 


def Display_Results(Student_Name, Grade): 
    print(Student_Name + " achieved a grade " + str(Grade) + ".") 

#MAIN PROGRAM 
Student_Name, Coursework_Mark, Prelim_Mark = Get_Details() 
Percentage = Calculate_Percentage(Coursework_Mark, Prelim_Mark) 
Display_Results(Student_Name, Grade) 

在节目的最后,我receieve:如何解决这个“NameError”?

Program.py", line 41, in <module> 
    Display_Results(Student_Name, Grade) 
NameError: name 'Grade' is not defined 

如何这个问题能解决?请帮忙,谢谢。

这个程序会询问用户的姓名,课程标记(满分60)和初试标记(满分90),并计算它们的比例是发给他们的屏幕,包括其名称一个档次。

回答

0

功能Calculate_Percentage返回两个值百分比和等级。看起来你想将它们分配给一个单独的变量,每个变量都与上面一行中Get_Details调用中的三个值完全相同。

所以最后两行应该是这样的:

Percentage, Grade = Calculate_Percentage(Coursework_Mark, Prelim_Mark) 
Display_Results(Student_Name, Grade) 

请使用Python的命名约定使你的代码更易读。例如,变量名通常是all_lower_case。