форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
88 строки
5.3 KiB
Markdown
88 строки
5.3 KiB
Markdown
# Общее контрольное задание по Теме 6
|
|
Ходюк Максим Романович А-01-23
|
|
## Задание
|
|
• Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
|
|
|
|
• Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
|
|
|
|
• Записывается кортеж в бинарный файл.
|
|
|
|
• Записывается в этот же файл список и закрывается файл.
|
|
|
|
• Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
|
|
|
|
• Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
|
|
|
|
• Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
|
|
|
|
### Выполнение
|
|
|
|
Скрипт для выполнения OKZ в файле [TaskCode.py](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](Test.Dan.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']
|
|
```
|