diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..cc67606 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "python.linting.pylintEnabled": true, + "python.linting.enabled": true +} \ No newline at end of file diff --git a/specimen-igcse-prerelease.py b/specimen-igcse-prerelease.py new file mode 100644 index 0000000..f9e697b --- /dev/null +++ b/specimen-igcse-prerelease.py @@ -0,0 +1,53 @@ +# 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: + mark = None + # 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("Name: ")) + +# 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 average total for all students +print("Average total: %.2f" % (sum / 30)) \ No newline at end of file