'Exception Has occured: UnBoundLocalError' - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: 'Exception Has occured: UnBoundLocalError' (/thread-19070.html) |
'Exception Has occured: UnBoundLocalError' - caston - Jun-12-2019 Im fairly new to coding, but im having an issue with this program. The main function of the program is the read data from an external .csv file which contains, a students fore and surname, their 'coursemark' and 'exammark'. Then is supposed works out what grade each individual student achieved by calculating the combination of there 'coursemark' and 'exammark'. The program im having though is that the program is only displaying 7 of the 15 student's grades, then crashes and displays an error. Im really not sure why this is happening so if someone could have a look at the screenshots below and see if they know whats going on and give me some advice it would be very much appreciated. EDIT: Heres the code. def grade(overallpercentage): percentage = overallpercentage/150*100 if percentage >= 70: grade="You have achieved an A grade" elif percentage >= 60 and percentage <= 69: grade="You have achieved a B grade" elif percentage >= 50 and percentage <= 59: grade="You have achieved a C grade" elif percentage < 45: grade="No Grade" return grade,percentage def main(): f = open("Higher Supplementary Files Package 3.csv") rows = f.readlines() for counter in range(len(rows)): line = rows[counter].strip() fields = line.split(",") student_name = fields[0] course_mark = fields[1] exam_mark = fields[2] course_mark = int(course_mark) prelim_mark = int(exam_mark) overallpercentage= course_mark + prelim_mark newgrade, newpercentage = grade(overallpercentage) print(50 * "~") print("Name:",student_name) print("OverallPercentage: ",newpercentage) print("Grade: ",newgrade) print() if __name__ == '__main__': main() RE: 'Exception Has occured: UnBoundLocalError' - perfringo - Jun-12-2019 For starters just style suggestion: use comparisons in more readable format. You can do this way: >>> percentage = 65 >>> if 60 <= percentage <= 69: ... print('In range') ... In range |