Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2.5 KiB

Индивидуальное контрольное задание по Теме 6

Задание

  1. Создайте словарь с 10 элементами: ключи - фамилии студентов, значения - целые, случайные числа в диапазоне от 1 до 100.

  2. Запишите словарь в бинарный файл.

  3. Удалите словарь из памяти.

  4. Прочитайте словарь из файла и удалите из него два элемента: первого и последнего студента.

  5. Выведите на экран элементы полученного словаря в виде строк по шаблону: "Студент <ключ из словаря> : <значение из словаря>"

Решение

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