diff --git a/specimen-igcse-prereleases.py b/specimen-igcse-prereleases.py index 7c91ce2..7d088ec 100644 --- a/specimen-igcse-prereleases.py +++ b/specimen-igcse-prereleases.py @@ -1,62 +1,59 @@ -class Prerelease_047802: - def __init__(self): - Prerelease_047802.prerelease(self) - def prerelease(self): - # define lists for all required data - student_names = [] - test_1_marks = [] - test_2_marks = [] - test_3_marks = [] - total_marks = [] - # define number of students to record data for - number_of_students = 30 - # define variable for storing total marks gained by all students overall - sum = 0 +def prerelease_047802: + # define lists for all required data + student_names = [] + test_1_marks = [] + test_2_marks = [] + test_3_marks = [] + total_marks = [] + # define number of students to record data for + number_of_students = 30 + # define variable for storing total marks gained by all students overall + sum = 0 - # function for prompting user for input, then checking it against conditions - def getMark(test_number, student_index, max_mark): - # keep asking for the mark until a valid mark is entered - mark = None - while not mark: - # ask for mark of given student, for given test number - mark = input("%s test %d mark: " % (student_names[student_index], test_number)) - # check if mark is given and that it's numeric - if (mark and mark.isnumeric()): - # check mark is in acceptable range of values - if (int(mark) < 0 or int(mark) > max_mark): - mark = None - else: + # function for prompting user for input, then checking it against conditions + def getMark(test_number, student_index, max_mark): + # keep asking for the mark until a valid mark is entered + mark = None + while not mark: + # ask for mark of given student, for given test number + mark = input("%s test %d mark: " % (student_names[student_index], test_number)) + # check if mark is given and that it's numeric + if (mark and mark.isnumeric()): + # check mark is in acceptable range of values + if (int(mark) < 0 or int(mark) > max_mark): mark = None - # if input is invalid, print error message - if not mark: - print("Invalid input. Please enter a number between 0 and %d." % max_mark) - # return mark - return int(mark) + else: + mark = None + # if input is invalid, print error message + if not mark: + print("Invalid input. Please enter a number between 0 and %d." % max_mark) + # return mark + return int(mark) - # do this for all students - for i in range(number_of_students): - # retrieve and store student's name - student_names.append(input("Student %d name: " % (i + 1))) + # do this for all students + for i in range(number_of_students): + # retrieve and store student's name + student_names.append(input("Student %d name: " % (i + 1))) - # do this for all students - for i in range(number_of_students): - # retrieve and store student's test marks - # test #1 has a max mark of 20 - test_1_marks.append(getMark(1, i, 20)) - # test #2 has a max mark of 25 - test_2_marks.append(getMark(2, i, 25)) - # test #3 has a max mark of 35 - test_3_marks.append(getMark(3, i, 35)) - # record student's total marks - total_marks.append(test_1_marks[i] + test_2_marks[i] + test_3_marks[i]) - # add student's total marks to sum of all marks gained by all students overall - sum += total_marks[-1] + # do this for all students + for i in range(number_of_students): + # retrieve and store student's test marks + # test #1 has a max mark of 20 + test_1_marks.append(getMark(1, i, 20)) + # test #2 has a max mark of 25 + test_2_marks.append(getMark(2, i, 25)) + # test #3 has a max mark of 35 + test_3_marks.append(getMark(3, i, 35)) + # record student's total marks + total_marks.append(test_1_marks[i] + test_2_marks[i] + test_3_marks[i]) + # add student's total marks to sum of all marks gained by all students overall + sum += total_marks[-1] - # print each student's total marks - for i in range(number_of_students): - print("%s: %d" % (student_names[i], total_marks[i])) + # print each student's total marks + for i in range(number_of_students): + print("%s: %d" % (student_names[i], total_marks[i])) - # print average total for all students - print("Average total: %.2f" % (sum / 30)) + # print average total for all students + print("Average total: %.2f" % (sum / 30)) -Prerelease_047802() \ No newline at end of file +prerelease_047802() \ No newline at end of file