ответвлено от main/python-labs
Изменил(а) на 'TEMA8/test.md'
Этот коммит содержится в:
136
TEMA8/test.md
136
TEMA8/test.md
@@ -1,69 +1,69 @@
|
|||||||
# Индивидуальное контрольное задание по Теме 8
|
# Индивидуальное контрольное задание по Теме 8
|
||||||
Выполнил: Тимошенко А.А. Проверил: Козлюк Д.А.
|
Выполнил: Тимошенко А.А. Проверил: Козлюк Д.А.
|
||||||
## Задание:
|
## Задание:
|
||||||
Вариант 16:
|
Вариант 16:
|
||||||
Разработайте функцию с 2 аргументами, которая для заданного словаря (аргумент функции) с любыми ключами и с числовыми значениями создаёт новый словарь с теми же ключами и со значениями, равными синусам от значений из входного словаря, и записывает новый словарь в бинарный файл с заданным именем (аргумент функции). Проверьте функцию на примере двух разных входных словарей.
|
Разработайте функцию с 2 аргументами, которая для заданного словаря (аргумент функции) с любыми ключами и с числовыми значениями создаёт новый словарь с теми же ключами и со значениями, равными синусам от значений из входного словаря, и записывает новый словарь в бинарный файл с заданным именем (аргумент функции). Проверьте функцию на примере двух разных входных словарей.
|
||||||
По указанному преподавателем варианту контрольного задания обратитесь к индивидуально-му заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Со-здайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
По указанному преподавателем варианту контрольного задания обратитесь к индивидуально-му заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
||||||
## Решение:
|
## Решение:
|
||||||
Модуль 1:
|
Модуль 1:
|
||||||
```
|
```
|
||||||
import math
|
import math
|
||||||
import pickle
|
import pickle
|
||||||
|
|
||||||
def process_dictionary_sinus(input_dict, filename):
|
def process_dictionary_sinus(input_dict, filename):
|
||||||
#создаю новый словарь с синусами значений
|
#создаю новый словарь с синусами значений
|
||||||
new_dict = {}
|
new_dict = {}
|
||||||
for key, value in input_dict.items():
|
for key, value in input_dict.items():
|
||||||
new_dict[key] = math.sin(value)
|
new_dict[key] = math.sin(value)
|
||||||
|
|
||||||
#записываю новый словарь в бинарный файл
|
#записываю новый словарь в бинарный файл
|
||||||
with open(filename, 'wb') as file:
|
with open(filename, 'wb') as file:
|
||||||
pickle.dump(new_dict, file)
|
pickle.dump(new_dict, file)
|
||||||
|
|
||||||
return new_dict
|
return new_dict
|
||||||
|
|
||||||
# Дополнительная функция для чтения из бинарного файла
|
# Дополнительная функция для чтения из бинарного файла
|
||||||
def read_from_binary_file(filename):
|
def read_from_binary_file(filename):
|
||||||
"""
|
"""
|
||||||
Чтение словаря из бинарного файла
|
Чтение словаря из бинарного файла
|
||||||
"""
|
"""
|
||||||
with open(filename, 'rb') as file:
|
with open(filename, 'rb') as file:
|
||||||
loaded_dict = pickle.load(file)
|
loaded_dict = pickle.load(file)
|
||||||
return loaded_dict
|
return loaded_dict
|
||||||
|
|
||||||
```
|
```
|
||||||
Модуль 2:
|
Модуль 2:
|
||||||
```
|
```
|
||||||
import sinus_dict_module as sdm
|
import sinus_dict_module as sdm
|
||||||
|
|
||||||
def simple_test():
|
def simple_test():
|
||||||
#создам два словаря для теста
|
#создам два словаря для теста
|
||||||
dict1 = {'точка1': 0, 'точка2': 1.57, 'точка3': 3.14}
|
dict1 = {'точка1': 0, 'точка2': 1.57, 'точка3': 3.14}
|
||||||
dict2 = {'данные1': 2.5, 'данные2': -1.2, 'данные3': 0.8}
|
dict2 = {'данные1': 2.5, 'данные2': -1.2, 'данные3': 0.8}
|
||||||
|
|
||||||
#обрабатываем оба словаря
|
#обрабатываем оба словаря
|
||||||
result1 = sdm.process_dictionary_sinus(dict1, 'dict1.bin')
|
result1 = sdm.process_dictionary_sinus(dict1, 'dict1.bin')
|
||||||
result2 = sdm.process_dictionary_sinus(dict2, 'dict2.bin')
|
result2 = sdm.process_dictionary_sinus(dict2, 'dict2.bin')
|
||||||
|
|
||||||
#выводим результаты
|
#выводим результаты
|
||||||
print("Словарь 1:", dict1)
|
print("Словарь 1:", dict1)
|
||||||
print("Результат 1:", result1)
|
print("Результат 1:", result1)
|
||||||
print("Словарь 2:", dict2)
|
print("Словарь 2:", dict2)
|
||||||
print("Результат 2:", result2)
|
print("Результат 2:", result2)
|
||||||
|
|
||||||
#проверяем запись в файлы
|
#проверяем запись в файлы
|
||||||
print("Из файла 1:", sdm.read_from_binary_file('dict1.bin'))
|
print("Из файла 1:", sdm.read_from_binary_file('dict1.bin'))
|
||||||
print("Из файла 2:", sdm.read_from_binary_file('dict2.bin'))
|
print("Из файла 2:", sdm.read_from_binary_file('dict2.bin'))
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
simple_test()
|
simple_test()
|
||||||
```
|
```
|
||||||
Вывод:
|
Вывод:
|
||||||
````
|
````
|
||||||
Словарь 1: {'точка1': 0, 'точка2': 1.57, 'точка3': 3.14}
|
Словарь 1: {'точка1': 0, 'точка2': 1.57, 'точка3': 3.14}
|
||||||
Результат 1: {'точка1': 0.0, 'точка2': 0.9999996829318346, 'точка3': 0.0015926529164868282}
|
Результат 1: {'точка1': 0.0, 'точка2': 0.9999996829318346, 'точка3': 0.0015926529164868282}
|
||||||
Словарь 2: {'данные1': 2.5, 'данные2': -1.2, 'данные3': 0.8}
|
Словарь 2: {'данные1': 2.5, 'данные2': -1.2, 'данные3': 0.8}
|
||||||
Результат 2: {'данные1': 0.5984721441039564, 'данные2': -0.9320390859672263, 'данные3': 0.7173560908995228}
|
Результат 2: {'данные1': 0.5984721441039564, 'данные2': -0.9320390859672263, 'данные3': 0.7173560908995228}
|
||||||
Из файла 1: {'точка1': 0.0, 'точка2': 0.9999996829318346, 'точка3': 0.0015926529164868282}
|
Из файла 1: {'точка1': 0.0, 'точка2': 0.9999996829318346, 'точка3': 0.0015926529164868282}
|
||||||
Из файла 2: {'данные1': 0.5984721441039564, 'данные2': -0.9320390859672263, 'данные3': 0.7173560908995228}
|
Из файла 2: {'данные1': 0.5984721441039564, 'данные2': -0.9320390859672263, 'данные3': 0.7173560908995228}
|
||||||
````
|
````
|
||||||
Ссылка в новой задаче
Block a user