-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstudent_example
124 lines (94 loc) · 3.99 KB
/
student_example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
'''
This example allows the user to search for students grades and also
allows the users to add a student, view report cards for a student,
and add a mark for a student
FUNCTION 1 : print report cards
This function needs to print report cards for all students
This function needs to print report card for a student
FUNCTION 2: add a new student
FUNCION 3: add mark for a student
'''
# Create a list of students
# Students - Need key value pairs
students = [["Ben", {"Maths": 67, "English": 78, "Science": 72}],
["Mark", {"Maths" : 56, "Art" : 64, "History": 39, "Geography": 55}],
["Paul", {"English": 66, "History": 88}]
]
grades = ((0, "Fail"), (50, "D"), (60, "C"), (70, "B"), (80, "A"), (101, "CHEAT!"))
def print_report_card(student_name = None): # None inside an argument makes it optional
for student in students:
print("Student Name : ", student[0])
if (student[0] == student_name) or (student_name == None):
print("Report card for student", student[0])
for subject, mark in student[1].items():
print("Subject", subject)
print("Mark", mark)
for grade in grades:
if mark < grade[0]:
print(subject, ";", prev_grade)
break
prev_grade = grade[1] #grade[1] is letter grade or Fail
#print_report_card("Paul")
#print_report_card()
def add_student(student_name):
global students
for student in students:
if student[0] == student_name:
print("Student already exists!")
student.append([student_name, {}])
return "Student added successfully!"
def add_mark(student_name, subject, mark):
global students
for student in students:
if student[0] == student_name:
if subject in student[1].keys():
print(student_name, "already has a mark for ", subject)
user_input = input("Do you want to overwrite Y/N ?")
if user_input == "Y" or user_input == "y":
student[1][subject] = mark
return "Students mark was updated"
else:
return "Students mark was not updated"
else:
student[1][subject] = mark
return "Student's mark was added"
return "Student not found"
while True:
print("Welcome to the Student Database")
print("What can I help you with?")
print("Enter 1 to view all report cards")
print("Enter 2 to view the report card for a student")
print("Enter 3 to add a student")
print("Enter 4 to add a mark for a student")
print("Enter 5 to exit")
try:
user_choice = int(input("Choice: "))
except ValueError:
print("That's not a number I recognize")
user_choice = 0
if user_choice == 1:
print_report_card()
elif user_choice == 2:
enter_student = input("Which Student?")
print_report_card(enter_student)
elif user_choice == 3:
enter_student = input("Student Name?")
print(add_student(enter_student))
elif user_choice == 4:
enter_student = input("Student Name?")
enter_subject = input("Subject?")
num_error = True
while num_error:
num_error = False
try:
enter_mark = int(input("Mark?"))
except ValueError:
print("I don't recognize that as a number")
num_error = True
print(add_mark(enter_student, enter_subject, enter_mark))
elif user_choice == 5:
break
else:
print("Unknown choice")
input("Press enter to continue")
print("Thanks for using the Student Database")