|
|
## Общее контрольное задание по Теме 6
|
|
|
|
|
|
Кузьменко Елена, А-02-23
|
|
|
|
|
|
## Задание
|
|
|
|
|
|
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
|
|
|
|
|
|
1) Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
|
|
|
2) Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
|
|
|
3) Записывается кортеж в бинарный файл.
|
|
|
4) Записывается в этот же файл список и закрывается файл.
|
|
|
5) Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
|
|
|
6) Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
|
|
|
7) Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
|
|
|
|
|
|
## Решение
|
|
|
|
|
|
### 1.Объект-кортеж
|
|
|
|
|
|
```py
|
|
|
>>> import random
|
|
|
>>> k = []
|
|
|
>>> for i in range(125):
|
|
|
k.append(str(random.randint(6, 56)))
|
|
|
|
|
|
|
|
|
>>> k1 = tuple(k); k1
|
|
|
('48', '24', '44', '42', '31', '43', '29', '34', '27', '36', '8', '27', '26', '47', '55', '30', '19', '38', '40', '36', '39', '37', '44', '31', '50', '38', '17', '6', '49', '42', '8', '28', '38', '22', '18', '37', '12', '7', '9', '8', '32', '28', '47', '13', '24', '7', '41', '54', '17', '11', '18', '26', '54', '34', '50', '7', '24', '39', '53', '14', '23', '54', '28', '56', '43', '27', '8', '44', '21', '50', '36', '12', '14', '55', '19', '48', '13', '43', '6', '21', '54', '12', '38', '38', '8', '35', '14', '25', '38', '56', '42', '17', '46', '15', '31', '14', '36', '12', '30', '35', '53', '27', '45', '28', '6', '25', '55', '51', '15', '46', '45', '24', '49', '53', '27', '22', '34', '23', '45', '34', '24', '24', '36', '42', '50')
|
|
|
>>> len(k1)
|
|
|
125
|
|
|
```
|
|
|
|
|
|
### 2.Объект-список с фамилиями
|
|
|
|
|
|
```py
|
|
|
>>> spis = ['Кузьменко','Беженарь','Добровольска','Криви']; spis
|
|
|
['Кузьменко', 'Беженарь', 'Добровольска', 'Криви']
|
|
|
```
|
|
|
|
|
|
### 3-4.Кортеж и список в бинарный файл
|
|
|
|
|
|
```py
|
|
|
>>> import pickle
|
|
|
>>> fp = open('task1.mnz','wb')
|
|
|
>>> pickle.dump(k1, fp)
|
|
|
>>> pickle.dump(spis, fp)
|
|
|
>>> fp.close()
|
|
|
```
|
|
|
|
|
|
Содержимое файла task.mnz:
|
|
|
|
|
|
Ђ•i (Њ48”Њ24”Њ44”Њ42”Њ31”Њ43”Њ29”Њ34”Њ27”Њ36”Њ8”Њ27”Њ26”Њ47”Њ55”Њ30”Њ19”Њ38”Њ40”Њ36”Њ39”Њ37”Њ44”Њ31”Њ50”Њ38”Њ17”Њ6”Њ49”Њ42”Њ8”Њ28”Њ38”Њ22”Њ18”Њ37”Њ12”Њ7”Њ9”Њ8”Њ32”Њ28”Њ47”Њ13”Њ24”Њ7”Њ41”Њ54”Њ17”Њ11”Њ18”Њ26”Њ54”Њ34”Њ50”Њ7”Њ24”Њ39”Њ53”Њ14”Њ23”Њ54”Њ28”Њ56”Њ43”Њ27”Њ8”Њ44”Њ21”Њ50”Њ36”Њ12”Њ14”Њ55”Њ19”Њ48”Њ13”Њ43”Њ6”Њ21”Њ54”Њ12”Њ38”Њ38”Њ8”Њ35”Њ14”Њ25”Њ38”Њ56”Њ42”Њ17”Њ46”Њ15”Њ31”Њ14”Њ36”Њ12”Њ30”Њ35”Њ53”Њ27”Њ45”Њ28”Њ6”Њ25”Њ55”Њ51”Њ15”Њ46”Њ45”Њ24”Њ49”Њ53”Њ27”Њ22”Њ34”Њ23”Њ45”Њ34”Њ24”Њ24”Њ36”Њ42”Њ50”t”.Ђ•U ]”(ЊРљСѓР·СЊРјРµРЅРєРѕ”ЊР‘еженарь”ЊР”обровольска”Њ
|
|
|
РљСЂРёРІРё”e.
|
|
|
|
|
|
### 5.Считывание данных в 2 новых объекта
|
|
|
|
|
|
```py
|
|
|
>>> fp = open('task1.mnz','rb')
|
|
|
>>> k2 = pickle.load(fp)
|
|
|
>>> spis2 = pickle.load(fp)
|
|
|
>>> fp.close()
|
|
|
>>> k2; spis2
|
|
|
('48', '24', '44', '42', '31', '43', '29', '34', '27', '36', '8', '27', '26', '47', '55', '30', '19', '38', '40', '36', '39', '37', '44', '31', '50', '38', '17', '6', '49', '42', '8', '28', '38', '22', '18', '37', '12', '7', '9', '8', '32', '28', '47', '13', '24', '7', '41', '54', '17', '11', '18', '26', '54', '34', '50', '7', '24', '39', '53', '14', '23', '54', '28', '56', '43', '27', '8', '44', '21', '50', '36', '12', '14', '55', '19', '48', '13', '43', '6', '21', '54', '12', '38', '38', '8', '35', '14', '25', '38', '56', '42', '17', '46', '15', '31', '14', '36', '12', '30', '35', '53', '27', '45', '28', '6', '25', '55', '51', '15', '46', '45', '24', '49', '53', '27', '22', '34', '23', '45', '34', '24', '24', '36', '42', '50')
|
|
|
['Кузьменко', 'Беженарь', 'Добровольска', 'Криви']
|
|
|
```
|
|
|
|
|
|
### 6.Проверка на совпадение
|
|
|
|
|
|
```py
|
|
|
>>> print('Кортежи совпадают') if k1 == k2 else print('Кортежи не совпадают')
|
|
|
Кортежи совпадают
|
|
|
>>> print('Списки совпадают') if spis == spis2 else print('Списки не совпадают')
|
|
|
Списки совпадают
|
|
|
```
|
|
|
|
|
|
### 7.Кортеж на совокупности
|
|
|
|
|
|
```py
|
|
|
>>> for i in range(0, len(k1), 5): # 0, 5, 10, ... , 120
|
|
|
exec(f'spis{i//5} = list(k1[i:i + 5])') # индексы 0,1, ..., 24 и срез 5 эл-в: 0-4, 5-9,...
|
|
|
|
|
|
|
|
|
>>> for i in range(len(k1) // 5): # 25
|
|
|
exec(f'print("spis" + str(i) + ":", spis{i})')
|
|
|
|
|
|
|
|
|
spis0: ['48', '24', '44', '42', '31']
|
|
|
spis1: ['43', '29', '34', '27', '36']
|
|
|
spis2: ['8', '27', '26', '47', '55']
|
|
|
spis3: ['30', '19', '38', '40', '36']
|
|
|
spis4: ['39', '37', '44', '31', '50']
|
|
|
spis5: ['38', '17', '6', '49', '42']
|
|
|
spis6: ['8', '28', '38', '22', '18']
|
|
|
spis7: ['37', '12', '7', '9', '8']
|
|
|
spis8: ['32', '28', '47', '13', '24']
|
|
|
spis9: ['7', '41', '54', '17', '11']
|
|
|
spis10: ['18', '26', '54', '34', '50']
|
|
|
spis11: ['7', '24', '39', '53', '14']
|
|
|
spis12: ['23', '54', '28', '56', '43']
|
|
|
spis13: ['27', '8', '44', '21', '50']
|
|
|
spis14: ['36', '12', '14', '55', '19']
|
|
|
spis15: ['48', '13', '43', '6', '21']
|
|
|
spis16: ['54', '12', '38', '38', '8']
|
|
|
spis17: ['35', '14', '25', '38', '56']
|
|
|
spis18: ['42', '17', '46', '15', '31']
|
|
|
spis19: ['14', '36', '12', '30', '35']
|
|
|
spis20: ['53', '27', '45', '28', '6']
|
|
|
spis21: ['25', '55', '51', '15', '46']
|
|
|
spis22: ['45', '24', '49', '53', '27']
|
|
|
spis23: ['22', '34', '23', '45', '34']
|
|
|
spis24: ['24', '24', '36', '42', '50']
|
|
|
``` |