Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
help with sons homework
#1
He has the following code but he is getting the following error nboundLocalError: local variable 'grade' referenced before assignment, can anyone help please?
    def grade(overallmarks):
    percentage = overallmarks/150*100
# Prints 'No Award' if the overall percentage mark is less than 45
    if percentage <45:. 
        grade = "No Award"

# Prints the grade 'D' if the overall percentage mark is between 45 & 49
    elif percentage >= 45 and percentage <= 49:
        grade = "D"

# Prints the grade 'C' if the overall percentage mark is between 50 & 59
    elif percentage >= 50 and percentage <= 59:
        grade = "C"

# Prints the grade 'B' if the overall percentage mark is between 60 & 69
    elif percentage >= 60 and percentage <= 69:
        grade = "B"

# Prints the grade 'A' if the overall percentage mark is 70 or over
    elif percentage >=70:
        grade = "A"
        

    return grade, percentage


def main():
    
# Opens the studentgrades.csv file in read mode
    f = open("studentgrades.csv")
# Reads all of the file lines and put them in a list
    rows = f.readlines()

# The loop goes through all of the rows, one by one
    for counter in range(len(rows)):
    # Extract the current line
        line = rows[counter].strip()
    # Splits and organises each line and saves in a list
        fields = line.split(",") 

        student_name = fields[0]
        coursework = fields[1]
        prelim_mark = fields[2]
    # Set coursework to integer
        coursework = int(coursework)
    # Set prelim mark to integer
        prelim_mark = int(prelim_mark)
    # Sets overallmarks variable to coursework add prelim mark
        overallmarks = coursework + prelim_mark

        finalgrade, finalpercentage = grade(overallmarks)
        
    # Prints a line of 30 '*' to organise the data
        print(30 * "*")
    # Prints the student name from external file
        print("Student:", student_name)
    # Prints the students final percentage 
        print("Percentage:", finalpercentage)
    # Prints the students final grade
        print("Final Grade:", finalgrade)
    # Prints a blank line
        print()
        
# Boilerplate code
if __name__ == '__main__':
    main()
Output:
errorinal Grade: No Award ****************************** Student: Shahida Choudry Percentage: 70.0 Final Grade: A ****************************** Student: Ian Li Percentage: 50.0 Final Grade: C ****************************** Student: Petra Carter Percentage: 39.33333333333333 Final Grade: No Award
Error:
Traceback (most recent call last): File "C:\Users\~XPS~\Desktop\student_grades.py", line 66, in <module> main() File "C:\Users\~XPS~\Desktop\student_grades.py", line 51, in main finalgrade, finalpercentage = grade(overallmarks) File "C:\Users\~XPS~\Desktop\student_grades.py", line 24, in grade return grade, percentage UnboundLocalError: local variable 'grade' referenced before assignment
Reply
#2
Indent error line 1,
period at end of line 4,
define:
grade = None
immediately after the def on line 1 (after correction indent)
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020