форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
56 строки
2.2 KiB
Markdown
56 строки
2.2 KiB
Markdown
## ИКЗ по теме 7
|
|
Добровольска Елизавета
|
|
А-02-23
|
|
Вариант 16
|
|
|
|
## Задание
|
|
|
|
Разработайте функцию с 2 аргументами, которая для заданного словаря (аргумент функции) с любыми ключами и с числовыми значениями создаёт новый словарь с теми же ключами и со значениями, равными синусам от значений из входного словаря, и записывает новый словарь в бинарный файл с заданным именем (аргумент функции). Проверьте функцию на примере двух разных входных словарей.
|
|
|
|
## Решение
|
|
|
|
```py
|
|
import math
|
|
import pickle
|
|
|
|
def slov_sin(input_dict, filename):
|
|
new_dict = {key: math.sin(value) for key, value in input_dict.items()}
|
|
with open(filename, 'wb') as f:
|
|
pickle.dump(new_dict, f)
|
|
|
|
|
|
|
|
dict1 = {'a': 0, 'b': math.pi / 2, 'c': math.pi, 'd': 3 * math.pi / 2}
|
|
file1 = 'sin_values_1.bin'
|
|
slov_sin(dict1, file1)
|
|
|
|
|
|
with open(file1, 'rb') as f:
|
|
loaded_dict1 = pickle.load(f)
|
|
print(f"Исходный словарь 1: {dict1}")
|
|
print(f"Сохраненный и загруженный словарь 1: {loaded_dict1}")
|
|
print("-" * 30)
|
|
|
|
|
|
dict2 = {'x': 1.0, 'y': 2.0, 'z': -0.5}
|
|
file2 = 'sin_values_2.bin'
|
|
slov_sin(dict2, file2)
|
|
|
|
with open(file2, 'rb') as f:
|
|
loaded_dict2 = pickle.load(f)
|
|
print(f"Исходный словарь 2: {dict2}")
|
|
print(f"Сохраненный и загруженный словарь 2: {loaded_dict2}")
|
|
```
|
|
|
|
ВЫВОД:
|
|
|
|
```py
|
|
================== RESTART: C:/Users/u522-16/Downloads/gfg.py ==================
|
|
Исходный словарь 1: {'a': 0, 'b': 1.5707963267948966, 'c': 3.141592653589793, 'd': 4.71238898038469}
|
|
Сохраненный и загруженный словарь 1: {'a': 0.0, 'b': 1.0, 'c': 1.2246467991473532e-16, 'd': -1.0}
|
|
------------------------------
|
|
Исходный словарь 2: {'x': 1.0, 'y': 2.0, 'z': -0.5}
|
|
Сохраненный и загруженный словарь 2: {'x': 0.8414709848078965, 'y': 0.9092974268256817, 'z': -0.479425538604203}
|
|
```
|
|
|