4.2 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
exec('list' + str(i // 5 + 1) + ' = ' + # создаём list1 итд
str(list(rn1[i:i+5]))) # берём по 5 элементов
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']