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

4.1 KiB

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

Подольский Никита, А-01-23

Задание

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

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

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

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

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

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

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

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

Решение

import random
import pickle

# фиксируем сид
SEED = 12345
random.seed(SEED)

rn = tuple(str(random.randint(6, 56)) for i in range(125))
print(rn)

spis = ["Podolsky", "Bushmanov", "Terehov", "Melnikov", "Zhalnin"]

fp = open('data.bin', 'wb')
pickle.dump(rn, fp)
pickle.dump(spis, fp)
fp.close()

fp = open('data.bin', 'rb')
rn1 = pickle.load(fp)
print(rn1)
spis1 = pickle.load(fp)
fp.close()

if rn == rn1:
    print("Переменные rn и rn1 совпадают")
else:
    print("Переменные rn и rn1 не совпадают")

if spis == spis1:
    print("Переменные spis и spis1 совпадают")
else:
    print("Переменные spis и spis1 не совпадают")

# разбиение кортежа на списки по 5 элементов
for i in range(0, 125, 5):          # идём по кортежу шагом 5
    chunk = list(rn1[i:i+5])
    exec('list' + str(i // 5 + 1) + ' = chunk')

print(list1)
print(list2)
print(list5)



('32', '52', '6', '25', '29', '18', '23', '42', '33', '16', '29', '13', '33', '22', '41', '46', '17', '45', '41', '17', '28', '53', '52', '11', '39', '53', '32', '43', '38', '16', '15', '19', '52', '10', '18', '27', '26', '7', '35', '27', '7', '38', '50', '53', '32', '6', '6', '48', '16', '55', '43', '17', '24', '12', '47', '32', '12', '49', '42', '17', '53', '30', '20', '39', '44', '51', '27', '8', '20', '13', '37', '19', '53', '54', '41', '48', '17', '22', '43', '33', '39', '14', '8', '16', '25', '6', '15', '20', '28', '40', '27', '16', '30', '26', '6', '9', '9', '51', '34', '11', '30', '17', '56', '6', '55', '51', '29', '19', '49', '38', '54', '13', '36', '45', '9', '6', '46', '37', '26', '55', '45', '32', '41', '18', '29')
('32', '52', '6', '25', '29', '18', '23', '42', '33', '16', '29', '13', '33', '22', '41', '46', '17', '45', '41', '17', '28', '53', '52', '11', '39', '53', '32', '43', '38', '16', '15', '19', '52', '10', '18', '27', '26', '7', '35', '27', '7', '38', '50', '53', '32', '6', '6', '48', '16', '55', '43', '17', '24', '12', '47', '32', '12', '49', '42', '17', '53', '30', '20', '39', '44', '51', '27', '8', '20', '13', '37', '19', '53', '54', '41', '48', '17', '22', '43', '33', '39', '14', '8', '16', '25', '6', '15', '20', '28', '40', '27', '16', '30', '26', '6', '9', '9', '51', '34', '11', '30', '17', '56', '6', '55', '51', '29', '19', '49', '38', '54', '13', '36', '45', '9', '6', '46', '37', '26', '55', '45', '32', '41', '18', '29')
Переменные rn и rn1 совпадают
Переменные spis и spis1 совпадают
['32', '52', '6', '25', '29']
['18', '23', '42', '33', '16']
['28', '53', '52', '11', '39']