форкнуто от main/python-labs
				
			
			Вы не можете выбрать более 25 тем
			Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
		
		
		
		
		
			
		
			
				
	
	
		
			55 строки
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			55 строки
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Markdown
		
	
# ОБЩЕЕ КОНТРОЛЬНОЕ ЗАДАНИЕ по Теме 5
 | 
						|
Выполнил: Тимошенко А.А. Проверил: Козлюк Д.А.
 | 
						|
 | 
						|
## Задание
 | 
						|
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следую-щие операции:
 | 
						|
•	Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
 | 
						|
•	Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
 | 
						|
•	Записывается кортеж в бинарный файл.
 | 
						|
•	Записывается в этот же файл список и закрывается файл.
 | 
						|
•	Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
 | 
						|
•	Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
 | 
						|
•	Разделяется кортеж на  совокупности по 5 чисел в каждой и они записываются  в виде от-дельных списков со своими именами.
 | 
						|
 | 
						|
## Решение
 | 
						|
```
 | 
						|
>>> nums = tuple(str(random.randint(6, 56)) for _ in range(125))
 | 
						|
>>> nums
 | 
						|
('7', '34', '42', '20', '50', '45', '9', '29', '17', '9', '51', '51', '39', '22', '49', '34', '45', '29', '49', '48', '56', '28', '48', '47', '41', '43', '33', '44', '49', '10', '30', '6', '49', '14', '41', '18', '7', '41', '20', '42', '56', '54', '20', '40', '18', '13', '32', '40', '44', '40', '37', '39', '8', '43', '33', '40', '20', '10', '10', '39', '46', '37', '9', '52', '45', '10', '37', '18', '56', '47', '46', '20', '30', '42', '49', '43', '22', '11', '23', '30', '30', '47', '31', '43', '32', '27', '20', '24', '25', '50', '54', '15', '42', '40', '24', '27', '10', '13', '39', '27', '34', '43', '11', '44', '41', '14', '38', '21', '45', '31', '17', '48', '18', '54', '21', '38', '30', '48', '35', '32', '38', '35', '35', '56', '24')
 | 
						|
```
 | 
						|
Примечание: если итератор не надо использовать в теле цикла, принято просто обозначать его _
 | 
						|
```
 | 
						|
>>> group = ["Timoshenko", "Hodyk", "Kovalenko", "Filippov", "Goloshchapov"]
 | 
						|
>>> 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
 | 
						|
('7', '34', '42', '20', '50', '45', '9', '29', '17', '9', '51', '51', '39', '22', '49', '34', '45', '29', '49', '48', '56', '28', '48', '47', '41', '43', '33', '44', '49', '10', '30', '6', '49', '14', '41', '18', '7', '41', '20', '42', '56', '54', '20', '40', '18', '13', '32', '40', '44', '40', '37', '39', '8', '43', '33', '40', '20', '10', '10', '39', '46', '37', '9', '52', '45', '10', '37', '18', '56', '47', '46', '20', '30', '42', '49', '43', '22', '11', '23', '30', '30', '47', '31', '43', '32', '27', '20', '24', '25', '50', '54', '15', '42', '40', '24', '27', '10', '13', '39', '27', '34', '43', '11', '44', '41', '14', '38', '21', '45', '31', '17', '48', '18', '54', '21', '38', '30', '48', '35', '32', '38', '35', '35', '56', '24')
 | 
						|
>>> group1 = pickle.load(fl)
 | 
						|
>>> group1
 | 
						|
['Timoshenko', 'Hodyk', 'Kovalenko', 'Filippov', 'Goloshchapov']
 | 
						|
```
 | 
						|
Примечание: при чтении с помощью pickle.load() тоже есть указатель, который останавливается
 | 
						|
при достижении /n, так что можно просто вызвать ее два раза, чтобы записать эти два объекта.
 | 
						|
Если вызвать ее третий раз, будет EOFError.
 | 
						|
```
 | 
						|
>>> 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])))
 | 
						|
```
 | 
						|
Можно вызвать конкретные списки для проверки:
 | 
						|
```
 | 
						|
>>> list1
 | 
						|
['34', '42', '20', '50', '45']
 | 
						|
>>> list6
 | 
						|
['9', '29', '17', '9', '51']
 | 
						|
```
 | 
						|
 |