Add code for specimen iGCSE prerelease
This commit is contained in:
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"python.linting.pylintEnabled": true,
|
||||
"python.linting.enabled": true
|
||||
}
|
||||
53
specimen-igcse-prerelease.py
Normal file
53
specimen-igcse-prerelease.py
Normal 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))
|
||||
Reference in New Issue
Block a user