From 4ad32e2ba1d3d3d07b4a8d81032152812c1907b2 Mon Sep 17 00:00:00 2001 From: KhodiukMR Date: Mon, 27 Oct 2025 09:16:06 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BC=D0=B0=D1=82=D0=B5=D1=80=D0=B8=D0=B0=D0=BB=D1=8B?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D0=9E=D0=9A=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA6/TaskCode.py | 29 ++++++++++++++++ TEMA6/task.md | 87 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 TEMA6/TaskCode.py create mode 100644 TEMA6/task.md diff --git a/TEMA6/TaskCode.py b/TEMA6/TaskCode.py new file mode 100644 index 0000000..8860c5c --- /dev/null +++ b/TEMA6/TaskCode.py @@ -0,0 +1,29 @@ +import os +os.chdir('D:\\POAS\\Hodyuk\\Tema6\\') +import random as rn +kort = [] +for i in range(125): kort.append(str(rn.choice(range(6,57)))) +kort = tuple(kort) +spis = ['Hodyuk','Timoshenko','Kovalenko','Lykova','Ivanov'] +fp = open('TestDan.mnz','wb') +if !fp.closed: + pickle.dump(kort,fp) + pickle.dump(spis,fp) + fp.close() + +fp = open('TestDan.mnz','rb') +if !fp.closed: + kort1=pickle.load(fp) + spis1=pickle.load(fp) + if kort1==kort and spis1==spis: + print("новые обьекты совпадают с теми, что были записаны в файл") + else: + print("Ошибка записи или чтения") + fp.close() + +for i in range(len(kort)//5): + exec('list' + str(i) + '=' + str(list(kort[i:i+5]))) + + + + diff --git a/TEMA6/task.md b/TEMA6/task.md new file mode 100644 index 0000000..ac27569 --- /dev/null +++ b/TEMA6/task.md @@ -0,0 +1,87 @@ +# Общее контрольное задание по Теме 6 +Ходюк Максим Романович А-01-23 +## Задание +• Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк. + +• Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников. + +• Записывается кортеж в бинарный файл. + +• Записывается в этот же файл список и закрывается файл. + +• Открывается этот файл для чтения и считывает из него данные в 2 новых объекта. + +• Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение. + +• Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами. + +### Выполнение + +Скрипт для выполнения OKZ в файле [TaskCode.py](TaksCode.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'] +``` +Открытие бинарного файла и запись в него кортежа и списка, после чего закрытие файла(атрибутом .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'] +```