форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
5.2 KiB
5.2 KiB
Общее контрольное задание
Зеленкина Катерина, А-02-23
Задание
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
- Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
- Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
- Записывается кортеж в бинарный файл.
- Записывается в этот же файл список и закрывается файл.
- Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
- Проверяется на совпадение новых объектов с исходными и выводится соответствующее со-общение.
- Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде от-дельных списков со своими именами.
Решение
# Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
import random
tp = tuple(random.randint(6, 56) for i in range(125))
str_tp = tuple(map(str, tp))
print(str_tp)
# Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассни
surname = ["Криви", "Киреев", "Капитонов", "Ефремов", "Добровольска"]
print("Список фамилий:", surname)
# Записать кортеж в бинарный файл.
import os
import pickle
os.chdir(r"C:\Users\user\python-labs\TEMA6")
a = open('bin.mnz', 'wb')
pickle.dump(str_tup, a)
# Записывается в этот же файл список и закрывается файл.
pickle.dump(surname, a)
a.close()
# Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
a = open('bin.mnz', 'rb')
obj1 = pickle.load(a)
obj2_spis = pickle.load(a)
a.close()
print("Прочитан кортеж:", obj1)
print("Прочитан список:", obj2_spis)
# Проверяется на совпадение новых объектов с исходными и выводится соответствующее со-общение.
if obj1 == str_tup and obj2_spis == surname:
print("Объекты совпадают с исходными!")
else:
print("Объекты не совпадают с исходными!")
# Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
for i in range(25):
exec(f"list{i+1} = list(str_tp[{i*5}:{i*5+5}])")
print("Список 1: " , list1,'\n',"Список 2: ", list2)
#Вывод
```py
('7', '49', '35', '8', '14', '41', '56', '19', '47', '19', '35', '17', '42', '24', '6', '51', '54', '44', '35', '17', '48', '31', '8', '23', '14', '26', '50', '46', '52', '13', '39', '26', '10', '53', '56', '53', '30', '44', '51', '6', '54', '24', '42', '8', '53', '46', '42', '15', '30', '41', '25', '30', '25', '48', '26', '53', '45', '33', '36', '54', '42', '16', '23', '24', '38', '34', '46', '42', '56', '13', '30', '21', '20', '34', '39', '8', '53', '35', '14', '34', '11', '54', '22', '20', '51', '24', '51', '38', '31', '34', '54', '27', '50', '41', '9', '31', '7', '36', '27', '36', '53', '39', '10', '40', '13', '6', '34', '28', '56', '30', '37', '41', '18', '26', '34', '46', '16', '34', '11', '24', '13', '37', '46', '17', '37')
Список фамилий: ['Криви', 'Киреев', 'Капитонов', 'Ефремов', 'Добровольска']
Прочитан кортеж: ('7', '49', '35', '8', '14', '41', '56', '19', '47', '19', '35', '17', '42', '24', '6', '51', '54', '44', '35', '17', '48', '31', '8', '23', '14', '26', '50', '46', '52', '13', '39', '26', '10', '53', '56', '53', '30', '44', '51', '6', '54', '24', '42', '8', '53', '46', '42', '15', '30', '41', '25', '30', '25', '48', '26', '53', '45', '33', '36', '54', '42', '16', '23', '24', '38', '34', '46', '42', '56', '13', '30', '21', '20', '34', '39', '8', '53', '35', '14', '34', '11', '54', '22', '20', '51', '24', '51', '38', '31', '34', '54', '27', '50', '41', '9', '31', '7', '36', '27', '36', '53', '39', '10', '40', '13', '6', '34', '28', '56', '30', '37', '41', '18', '26', '34', '46', '16', '34', '11', '24', '13', '37', '46', '17', '37')
Прочитан список: ['Криви', 'Киреев', 'Капитонов', 'Ефремов', 'Добровольска']
Объекты совпадают с исходными!
Список 1: ['7', '49', '35', '8', '14']
Список 2: ['41', '56', '19', '47', '19']