def add_student(student_name, student_age):
try:
students.append({
'name': student_name,
'age': int(student_age),
'marks': []
})
print(f'New student #{len(students) - 1} added')
except ValueError:
print(f'Student age {student_age} is incorrect')
def get_student_by_num(student_id):
try:
return students[int(student_id)]
except ValueError:
print(f'Student id {student_id} must be an integer')
return {}
except IndexError:
print(f'Student #{student_id} not existing')
return {}
def add_student_mark(student_id, student_mark):
student = get_student_by_num(student_id)
student['marks'].append(student_mark)
def get_student_average(student_id):
student = get_student_by_num(student_id)
marks = student['marks']
for i in range(len(marks)):
if marks[i] == '2':
marks[i] = 10
elif marks[i] == '3':
marks[i] = 30
elif marks[i] == '4':
marks[i] = 60
elif marks[i] == '5':
marks[i] = 90
elif marks[i] == '5+':
marks[i] = 100
return round(sum(marks) / len(marks), 1)
# Решение задания
def add_student(student_name, student_age):
try:
students.append({
'name': student_name,
'age': int(student_age),
'marks': []
})
print(f'New student #{len(students) - 1} added')
except ValueError:
print(f'Student age {student_age} is incorrect')
def get_student_by_num(student_id):
try:
return students[int(student_id)]
except ValueError:
print(f'Student id {student_id} must be an integer')
return {}
except IndexError:
print(f'Student #{student_id} not existing')
return {}
def add_student_mark(student_id, student_mark):
try:
student = get_student_by_num(student_id)
student['marks'].append(student_mark)
except KeyError:
print(f'Student #{student_id} data is invalid')
def get_student_average(student_id):
try:
student = get_student_by_num(student_id)
marks = student['marks']
if marks == []:
return 0
for i in range(len(marks)):
if marks[i] == '2':
marks[i] = 10
elif marks[i] == '3':
marks[i] = 30
elif marks[i] == '4':
marks[i] = 60
elif marks[i] == '5':
marks[i] = 90
elif marks[i] == '5+':
marks[i] = 100
return round(sum(marks) / len(marks), 1)
except KeyError:
print(f'Student #{student_id} data is invalid')
return 0
except TypeError:
print(f'Student #{student_id} has non-integer marks')
return 0