форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.5 KiB
2.5 KiB
Индивидуальное контрольное задание по Теме 6
Задание
-
Создайте словарь с 10 элементами: ключи - фамилии студентов, значения - целые, случайные числа в диапазоне от 1 до 100.
-
Запишите словарь в бинарный файл.
-
Удалите словарь из памяти.
-
Прочитайте словарь из файла и удалите из него два элемента: первого и последнего студента.
-
Выведите на экран элементы полученного словаря в виде строк по шаблону: "Студент <ключ из словаря> : <значение из словаря>"
Решение
import random
import pickle
1
students = {"Лазарев": random.randint(1, 100),"Анисенков": random.randint(1, 100),"Филлипова": random.randint(1, 100),"Филлипов": random.randint(1, 100),"Жалнин": random.randint(1, 100),"Махнов": random.randint(1, 100),"Лыкова": random.randint(1, 100),"Терехов": random.randint(1, 100),"Голощапов": random.randint(1, 100),"Мельников": random.randint(1, 100)}
pri`nt("Исходный словарь")
for stud, zeloe in students.items():
print(f"Студент {stud} - {zeloe}")
2
with open('stud.txt', 'wb') as f:
pickle.dump(students, f)
3
del students
4
with open('stud.txt', 'rb') as f:
students = pickle.load(f)
if students:
keys = list(students.keys())
students.pop(keys[0])
students.pop(keys[-1])
5
print("Новый словарь")
for stud, zeloe in students.items():
print(f"Студент {stud} : {zeloe}")
Итог:
Исходный словарь
Студент Лазарев - 70
Студент Анисенков - 22
Студент Филлипова - 38
Студент Филлипов - 28
Студент Жалнин - 21
Студент Махнов - 56
Студент Лыкова - 29
Студент Терехов - 10
Студент Голощапов - 39
Студент Мельников - 91
Новый словарь
Студент Анисенков : 22
Студент Филлипова : 38
Студент Филлипов : 28
Студент Жалнин : 21
Студент Махнов : 56
Студент Лыкова : 29
Студент Терехов : 10
Студент Голощапов : 39