Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2.9 KiB

Индивидуальное контрольное задание по теме 8

Лыкова Елизавета, А-01-23

Задание

По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.

Разработайте функцию с двумя аргументами – списками. На их основе в функции должен со-здаваться словарь с ключами из первого списка и со значениями – натуральными логарифмами абсолютных значений соответствующих элементов из второго списка. Полученный словарь должен записываться в бинарный файл с именем Slovar.bin. Проверьте функцию на двух примерах с разными списками.

Решение

import os
import math
import pickle

def dictionary(keys,values):
    ''' Создает словарь с ключами из первого списка и значениями из второго'''
    
    result = {}

    for i in range(len(keys)):
        result[keys[i]] = math.log(abs(values[i]))

    fl = open('Slovar.bin','wb')
    pickle.dump(result,fl)
    fl.close()

    return result

Модуль slovar

import slovar

# Пример 1

keys1 = ['A','B','C']
values1 = [16,7,890]

print(f'Пример 1')
print(f'Ключи: {keys1}')
print(f'Значения: {values1}')

result1 = slovar.dictionary(keys1,values1)

print(f'Созданный словарь: {result1}')

# Пример 2

keys2 = ['d','b','x','s']
values2 = [10.7,-4,5,63]

print(f'Пример 2')
print(f'Ключи: {keys2}')
print(f'Значения: {values2}')

result2 = slovar.dictionary(keys2,values2)

print(f'Созданный словарь: {result2}')

Модуль main

import main
Пример 1
Ключи: ['A', 'B', 'C']
Значения: [16, 7, 890]
Созданный словарь: {'A': 2.772588722239781, 'B': 1.9459101490553132, 'C': 6.7912214627261855}
Пример 2
Ключи: ['d', 'b', 'x', 's']
Значения: [10.7, -4, 5, 63]
Созданный словарь: {'d': 2.3702437414678603, 'b': 1.3862943611198906, 'x': 1.6094379124341003, 's': 4.143134726391533}

Выполнение