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

3.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 чисел в каждой и они записываются в виде отдельных списков со своими именами
for i in range(0,125,5):
    exec('list' + str(i//5+1) + ' = ' + str(list(numbers_tuple[i:i+5])))

print(list1)
print(list2)
print(list3)
print(list4)
print(list5)

Ответ программы:

Объекты совпадают
['10', '25', '23', '34', '38']
['13', '19', '26', '10', '17']
['8', '9', '22', '40', '22']
['24', '28', '28', '24', '8']
['25', '44', '54', '47', '56']