форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.2 KiB
2.2 KiB
Общее контрольное задание по теме 6
Ефремов Станислав, А-02-23
Задание
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
• Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
• Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
• Записывается кортеж в бинарный файл.
• Записывается в этот же файл список и закрывается файл.
• Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
• Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
• Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
Решение
import random
import os
import pickle
list_corteg = []
for _ in range(125):
random_number = random.randint(6, 56)
list_corteg.append(str(random_number))
list_corteg = tuple(list_corteg)
list_fam = ['Ефременко', 'Добровольска', 'Туровец', 'Хатюхин', 'Шабатов']
fp = open('fam.2ob', 'wb')
pickle.dump(list_corteg, fp)
pickle.dump(list_fam, fp)
fp.close()
fp = open('fam.2ob', 'rb')
obj_5_1 = pickle.load(fp)
obj_5_2 = pickle.load(fp)
fp.close()
print(obj_5_1, obj_5_2, sep = '\n')
print('yes' if obj_5_1 == list_corteg else 'no')
print('yes' if obj_5_2 == list_fam else 'no')
for i in range(0, len(obj_5_1), 5):
exec(f'spis{i//5} = list(obj_5_1[i:i+5])')
for i in range(len(obj_5_1) // 5): # вывод
exec(f'print("spis" + str(i) + ":", spis{i})')