форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
4.4 KiB
4.4 KiB
Общее контрольное задание.
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
- Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
- Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
- Записывается кортеж в бинарный файл.
- Записывается в этот же файл список и закрывается файл.
- Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
- Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
- Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
import random
import pickle
import os
# 1. Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк
numbers_tuple = tuple(str(random.randint(6, 56)) for _ in range(125))
# 2. Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников
surnames_list = ["Терехов", "Жалнин", "Соловьёва", "Лыкова", "Бушманов"]
# 3. Записывается кортеж в бинарный файл
# 4. Записывается в этот же файл список и закрывается файл
fil=os.path.abspath("report.md")
drkt=os.path.dirname(fil)
fp = open(drkt + '/TEMA6/data_file.dat', 'wb')
pickle.dump(numbers_tuple, fp)
pickle.dump(surnames_list, fp)
fp.close()
# 5. Открывается этот файл для чтения и считывает из него данные в 2 новых объекта
fp = open(drkt + '/TEMA6/data_file.dat', 'rb')
loaded_tuple = pickle.load(fp)
loaded_list = pickle.load(fp)
fp.close()
# 6. Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение
if numbers_tuple == loaded_tuple and surnames_list == loaded_list:
print("Объекты совпадают")
else:
print("Объекты не совпадают")
# 7. Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами
lists_dict = {}
for i in range(0, len(loaded_tuple), 5):
chunk = list(loaded_tuple[i:i+5])
list_name = f"list_{i//5 + 1}"
lists_dict[list_name] = chunk
# Вывод созданных списков
for list_name, chunk in lists_dict.items():
print(f"{list_name} = {chunk}")
Ответ программы:
Объекты совпадают
list_1 = ['12', '9', '52', '39', '51']
list_2 = ['6', '50', '26', '43', '14']
list_3 = ['52', '20', '55', '18', '17']
list_4 = ['54', '20', '48', '56', '14']
list_5 = ['40', '17', '41', '7', '19']
list_6 = ['17', '40', '55', '11', '27']
list_7 = ['48', '38', '12', '26', '16']
list_8 = ['39', '21', '17', '41', '49']
list_9 = ['24', '16', '18', '6', '16']
list_10 = ['21', '10', '13', '33', '23']
list_11 = ['6', '31', '48', '6', '29']
list_12 = ['17', '34', '33', '40', '25']
list_13 = ['51', '6', '53', '36', '20']
list_14 = ['33', '17', '23', '51', '51']
list_15 = ['17', '44', '40', '17', '26']
list_16 = ['52', '54', '14', '32', '38']
list_17 = ['6', '10', '16', '45', '14']
list_18 = ['26', '40', '14', '29', '43']
list_19 = ['24', '49', '24', '36', '28']
list_20 = ['6', '17', '8', '7', '44']
list_21 = ['14', '22', '42', '24', '56']
list_22 = ['50', '6', '54', '27', '35']
list_23 = ['24', '13', '34', '9', '28']
list_24 = ['44', '34', '31', '16', '23']
list_25 = ['44', '10', '44', '23', '47']