форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
68 строки
3.7 KiB
Markdown
68 строки
3.7 KiB
Markdown
# Общее контрольное задание по теме 6
|
|
|
|
Девятова Мария, А-03-23
|
|
|
|
## Задание
|
|
|
|
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
|
|
1. Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
|
|
2. Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
|
|
3. Записывается кортеж в бинарный файл.
|
|
4. Записывается в этот же файл список и закрывается файл.
|
|
5. Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
|
|
6. Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
|
|
7. Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
|
|
|
|
## Выполнение
|
|
|
|
Инструкции для выполнения задания присутствуют в файле [task.py](task.py)
|
|
|
|
1. Создание кортежа
|
|
```
|
|
import random
|
|
tup1=[]
|
|
for i in range(125): tup1.append(str(random.randint(6, 56)))
|
|
tup1=tuple(tup1); tup1
|
|
('46', '43', '25', '14', '47', '19', '41', '28', '26', '24', '24', '10', '30', '37', '45', '19', '6', '28', '47', '21', '51', '30', '29', '12', '23', '10', '11', '41', '22', '53', '15', '24', '41', '30', '52', '33', '31', '35', '41', '38', '9', '21', '49', '44', '22', '7', '13', '49', '55', '46', '36', '25', '29', '14', '31', '37', '39', '14', '9', '47', '15', '10', '29', '27', '39', '55', '25', '34', '47', '11', '22', '29', '37', '8', '32', '51', '14', '47', '51', '44', '38', '46', '51', '47', '50', '15', '47', '17', '47', '32', '33', '13', '28', '27', '43', '16', '33', '29', '28', '52', '47', '26', '54', '16', '37', '21', '22', '28', '27', '8', '46', '6', '51', '14', '54', '6', '20', '8', '38', '22', '29', '40', '31', '25', '16')
|
|
```
|
|
|
|
2-4. Создание списка, запись кортежа и списка в бинарный файл, чтение обоих объектов из файла
|
|
|
|
```
|
|
sps1=['Девятова', 'Ефимова', 'Беженарь', 'Антонов', 'Гордиевских']
|
|
import pickle
|
|
fp=open('fil.mnz', 'wb')
|
|
pickle.dump(tup1, fp)
|
|
pickle.dump(sps1, fp)
|
|
fp.close()
|
|
fp=open('fil.mnz', 'rb')
|
|
tup2=pickle.load(fp)
|
|
sps2=pickle.load(fp)
|
|
fp.close()
|
|
```
|
|
|
|
5. Проверка на совпадение объектов
|
|
|
|
```
|
|
print('Кортежи совпадают') if tup1 == tup2 else print('Кортежи не совпадают')
|
|
Кортежи совпадают
|
|
print('Списки совпадают') if sps1 == sps2 else print('Списки не совпадают')
|
|
Списки совпадают
|
|
```
|
|
|
|
6. Разделение кортежа на списки по 5 чисел, представленных в строковом виде. Для контроля выведены некоторые из созданных объектов
|
|
|
|
```
|
|
for i in range(0, len(tup1), 5):
|
|
exec('spisk' + str(i//5+1) + '=' + str(list(tup1[i:i+5])))
|
|
|
|
|
|
spisk1
|
|
['46', '43', '25', '14', '47']
|
|
spisk25
|
|
['29', '40', '31', '25', '16']
|
|
spisk2
|
|
['19', '41', '28', '26', '24']
|
|
spisk3
|
|
['24', '10', '30', '37', '45']
|
|
``` |