ответвлено от main/python-labs
55 строки
3.1 KiB
Markdown
55 строки
3.1 KiB
Markdown
# Общее контрольное задание по теме 6
|
|
|
|
Володин Денис, А-02-23
|
|
|
|
## Задание
|
|
|
|
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
|
|
|
|
• Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
|
|
|
|
• Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
|
|
|
|
• Записывается кортеж в бинарный файл.
|
|
|
|
• Записывается в этот же файл список и закрывается файл.
|
|
|
|
• Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
|
|
|
|
• Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
|
|
|
|
• Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
|
|
|
|
|
|
## Решение
|
|
|
|
```py
|
|
>>> import random
|
|
>>> import pickle
|
|
>>> nums = tuple(str(random.randint(6, 56)) for _ in range(125))
|
|
>>> nums
|
|
('39', '32', '6', '18', '38', '47', '16', '20', '30', '13', '55', '35', '12', '40', '13', '8', '43', '45', '20', '28', '43', '31', '35', '36', '24', '23', '41', '41', '53', '43', '14', '42', '18', '55', '55', '13', '51', '21', '24', '47', '55', '48', '15', '23', '33', '51', '34', '34', '20', '38', '46', '41', '48', '32', '36', '19', '10', '53', '38', '27', '27', '49', '33', '42', '7', '41', '41', '8', '55', '29', '26', '18', '9', '25', '19', '22', '17', '30', '17', '22', '20', '56', '46', '16', '22', '53', '30', '38', '28', '50', '9', '28', '37', '26', '21', '49', '10', '18', '45', '31', '48', '44', '21', '11', '38', '39', '13', '26', '6', '12', '54', '34', '15', '33', '31', '18', '36', '10', '34', '32', '7', '6', '49', '21', '55')
|
|
>>> group = ["Volodin", "Begenar", "Kireev", "Krivi", "Stepanov"]
|
|
>>> fl = open("okz.okz", "wb")
|
|
>>> pickle.dump(nums, fl)
|
|
>>> pickle.dump(group, fl)
|
|
>>> fl.close()
|
|
>>> fl = open("okz.okz", "rb")
|
|
>>> nums1 = pickle.load(fl)
|
|
>>> nums1
|
|
('39', '32', ... '49', '21', '55')
|
|
>>> group1 = pickle.load(fl)
|
|
>>> group1
|
|
["Volodin", "Begenar", "Kireev", "Krivi", "Stepanov"]
|
|
>>> print("Файлы nums совпадают!") if nums == nums1 else print("Файлы nums не совпадают :(")
|
|
Файлы nums совпадают!
|
|
>>> print("Файлы group совпадают!") if group == group1 else print("Файлы group не совпадают :(")
|
|
Файлы group совпадают!
|
|
>>> for i in range(125//5):
|
|
exec('list' + str(i) + '=' + str(list(nums1[i:i+5])))
|
|
>>> list0
|
|
['39', '32', '6', '18', '38']
|
|
>>> list5
|
|
['47', '16', '20', '30', '13']
|
|
```
|