Add code for specimen iGCSE prerelease

This commit is contained in:
2020-01-20 10:19:17 +00:00
parent d61b14ff35
commit 2dc7577931
2 changed files with 57 additions and 0 deletions

4
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"python.linting.pylintEnabled": true,
"python.linting.enabled": true
}

View File

@@ -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))