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

5.3 KiB

Общее контрольное задание по Теме 6

Ходюк Максим Романович А-01-23

Задание

• Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.

• Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.

• Записывается кортеж в бинарный файл.

• Записывается в этот же файл список и закрывается файл.

• Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.

• Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.

• Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.

Выполнение

Скрипт для выполнения OKZ в файле TaskCode.py

Создание необходимого кортежа

import random as rn
kort = []
for i in range(125): kort.append(str(rn.choice(range(6,57))))

kort
['34', '35', '31', '40', '51', '53', '18', '19', '42', '51', '18', '16', '20', '56', '21', '37', '29', '19', '22', '48', '31', '47', '40', '42', '51', '28', '20', '36', '37', '33', '14', '21', '9', '24', '16', '46', '38', '15', '37', '49', '48', '21', '45', '10', '55', '7', '33', '53', '42', '31', '56', '32', '8', '53', '7', '20', '45', '52', '11', '52', '28', '18', '8', '30', '30', '17', '36', '25', '47', '44', '25', '40', '27', '18', '20', '12', '53', '30', '20', '45', '17', '12', '21', '36', '45', '32', '30', '7', '48', '36', '12', '10', '30', '19', '19', '30', '12', '42', '52', '9', '55', '44', '22', '6', '38', '27', '27', '38', '55', '41', '52', '16', '6', '16', '43', '30', '33', '18', '12', '28', '29', '29', '28', '11', '6']
kort = tuple(kort)
kort
('34', '35', '31', '40', '51', '53', '18', '19', '42', '51', '18', '16', '20', '56', '21', '37', '29', '19', '22', '48', '31', '47', '40', '42', '51', '28', '20', '36', '37', '33', '14', '21', '9', '24', '16', '46', '38', '15', '37', '49', '48', '21', '45', '10', '55', '7', '33', '53', '42', '31', '56', '32', '8', '53', '7', '20', '45', '52', '11', '52', '28', '18', '8', '30', '30', '17', '36', '25', '47', '44', '25', '40', '27', '18', '20', '12', '53', '30', '20', '45', '17', '12', '21', '36', '45', '32', '30', '7', '48', '36', '12', '10', '30', '19', '19', '30', '12', '42', '52', '9', '55', '44', '22', '6', '38', '27', '27', '38', '55', '41', '52', '16', '6', '16', '43', '30', '33', '18', '12', '28', '29', '29', '28', '11', '6')

Создание списка

spis = ['Hodyuk','Timoshenko','Kovalenko','Lykova','Ivanov']

Открытие бинарного файла TestDan.mnz и запись в него кортежа и списка, после чего закрытие файла(атрибутом .closed роисходит проверка на то,удалось ли программе открыть файл)

fp = open('TestDan.mnz','wb')
fp.closed
False
pickle.dump(kort,fp)
pickle.dump(spis,fp)
fp.close()
fp.closed
True

Открытие файла для чтения из него в новые объекты данных, записанных в него

fp = open('TestDan.mnz','rb')
kort1=pickle.load(fp)
spis1=pickle.load(fp)
kort1
('34', '35', '31', '40', '51', '53', '18', '19', '42', '51', '18', '16', '20', '56', '21', '37', '29', '19', '22', '48', '31', '47', '40', '42', '51', '28', '20', '36', '37', '33', '14', '21', '9', '24', '16', '46', '38', '15', '37', '49', '48', '21', '45', '10', '55', '7', '33', '53', '42', '31', '56', '32', '8', '53', '7', '20', '45', '52', '11', '52', '28', '18', '8', '30', '30', '17', '36', '25', '47', '44', '25', '40', '27', '18', '20', '12', '53', '30', '20', '45', '17', '12', '21', '36', '45', '32', '30', '7', '48', '36', '12', '10', '30', '19', '19', '30', '12', '42', '52', '9', '55', '44', '22', '6', '38', '27', '27', '38', '55', '41', '52', '16', '6', '16', '43', '30', '33', '18', '12', '28', '29', '29', '28', '11', '6')
spis1
['Hodyuk', 'Timoshenko', 'Kovalenko', 'Lykova', 'Ivanov']

Проверка на совпадение новых переменных с записываемыми

if kort1==kort and spis1==spis:
    print("новые обьекты совпадают с теми, что были записаны в файл")
else:
    print("Ошибка записи или чтения")

новые обьекты совпадают с теми, что были записаны в файл

fp.close()

Разделение кортежа на совокупность списков по 5 чисел, проверка их наличия в памяти

for i in range(len(kort)//5):
	exec('list' + str(i) + '=' + str(list(kort[i:i+5])))

	
list1
['35', '31', '40', '51', '53']
list0
['34', '35', '31', '40', '51']
list6
['18', '19', '42', '51', '18']
list25
['28', '20', '36', '37', '33']