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

6.6 KiB

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

Кузьменко Елена, А-02-23

Задание

Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:

1) Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
2) Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
3) Записывается кортеж в бинарный файл.
4) Записывается в этот же файл список и закрывается файл.
5) Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
6) Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
7) Разделяется кортеж на  совокупности по 5 чисел в каждой и они записываются  в виде отдельных списков со своими именами.

Решение

1.Объект-кортеж

>>> 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.Объект-список с фамилиями

>>> spis = ['Кузьменко','Беженарь','Добровольска','Криви']; spis
['Кузьменко', 'Беженарь', 'Добровольска', 'Криви']

3-4.Кортеж и список в бинарный файл

>>> import pickle
>>> fp = open('task1.mnz','wb')
>>> pickle.dump(k1, fp)
>>> pickle.dump(spis, fp)
>>> fp.close()

Содержимое файла task.mnz:

Ђ•i48”Њ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 новых объекта

>>> 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.Проверка на совпадение

>>> print('Кортежи совпадают') if k1 == k2 else print('Кортежи не совпадают')
Кортежи совпадают
>>> print('Списки совпадают') if spis == spis2 else print('Списки не совпадают')
Списки совпадают

7.Кортеж на совокупности

>>> 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']