Skip to content

Instantly share code, notes, and snippets.

@dan0nchik
Created April 14, 2022 22:30
Show Gist options
  • Save dan0nchik/3d4eb9b8cc424e7eab3ec5eb507b80fb to your computer and use it in GitHub Desktop.
Save dan0nchik/3d4eb9b8cc424e7eab3ec5eb507b80fb to your computer and use it in GitHub Desktop.
Engineering exam practice, code from MIT affiliate in Russia (MIREA)
def add_pupil(name, birth_year, cs_score, math_score, physics_score, data):
data[name] = (name, birth_year, cs_score, math_score, physics_score) #
def show_pupil(name, data):
print(*data[name])
def del_pupil(name, data):
del data[name]
def show_summary(sort_field, data):
sorted_rows = sorted(data.values(), key=lambda x: x[int(sort_field)])
for row in sorted_rows:
print(*row)
def save(file_path, data):
with open(file_path, mode='w', encoding='utf-8') as output_file:
for row in data.values():
print(*row, file=output_file)
def load(file_path, data):
data.clear()
with open(file_path, mode='r', encoding='utf-8') as input_file:
for line in input_file:
line_parts = line.rstrip('\n').split()
add_pupil(*line_parts, data)
def main():
data = dict()
cmd2func = {'ДОБАВИТЬ': add_pupil,
'ПОКАЗАТЬ': show_pupil,
'УДАЛИТЬ': del_pupil,
'СВОДКА': show_summary,
'СОХРАНИТЬ': save,
'ЗАГРУЗИТЬ': load}
while True:
cmd, *cmd_args = input().split()
cmd2func[cmd](*cmd_args, data)
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment