форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
44 строки
2.1 KiB
Markdown
44 строки
2.1 KiB
Markdown
# Индивидуальное контрольное задание по теме 7
|
|
Степанов Артём, А-02-23
|
|
|
|
## Задание
|
|
|
|
Вариант 23
|
|
|
|
Разработайте функцию с 3 аргументами: N, D, G, создающую словарь с заданным числом N элементов: ключи - числа 1,2,…,N, значения – случайные числа, равномерно распределенные в диапазоне значений от D до G.
|
|
После формирования словарь должен быть записан в бинарный файл с именем SLOV.bin. Возвращаемые результаты – созданный словарь и среднее его значений.
|
|
Проверить функцию на примере.
|
|
|
|
## Решение
|
|
|
|
```py
|
|
>>> def createDict(N, D, G):
|
|
... import random, pickle
|
|
... dictionary = {}
|
|
... for i in range(1, N + 1):
|
|
... dictionary[f"{i}"] = random.uniform(D, G)
|
|
... fp = open("SLOV.bin", "wb")
|
|
... pickle.dump(dictionary, fp)
|
|
... fp.close()
|
|
... print("Словарь записан в файл SLOV.bin")
|
|
... mean = sum(dictionary.values()) / N
|
|
... return [dictionary, mean]
|
|
...
|
|
>>> import os, pickle
|
|
>>> os.chdir("C:\\Users\\u206-02\\Desktop\\StepanovAV\\python-labs\\TEMA7") # Установка текущего рабочего каталога
|
|
>>> os.getcwd() # Проверка текущего рабочего каталога
|
|
'C:\\Users\\u206-02\\Desktop\\StepanovAV\\python-labs\\TEMA7'
|
|
>>> [dict1, mean1] = createDict(3, 1, 2)
|
|
Словарь записан в файл SLOV.bin
|
|
>>> dict1
|
|
{'1': 1.5353710400761345, '2': 1.6929869395643098, '3': 1.074708491617669}
|
|
>>> mean1
|
|
1.434355490419371
|
|
>>> fp = open("SLOV.bin", "rb")
|
|
>>> newDict = pickle.load(fp)
|
|
>>> fp.close()
|
|
>>> newDict
|
|
{'1': 1.5353710400761345, '2': 1.6929869395643098, '3': 1.074708491617669}
|
|
>>> newDict == dict1 # Проверка равенства словарей: возвращаемого функцией и записанного в файл
|
|
True
|
|
``` |