Условия задачи:

 

Имена и адреса электронной почты. Напишите программу, которая сохраняет имена и адреса электронной почты в словаре в виде пар "ключ : значение". Программа должна вывести меню, которое позволяет пользователю отыскать адрес электронной почты че­ловека, добавить новое имя и адрес электронной почты, изменить существующий адрес электронной почты и удалить существующие имя и адрес электронной почты. Програм­ма должна законсервировать словарь и сохранить его в файле при выходе пользователя из программы. При каждом запуске программы она должна извлекать словарь из файла
и расконсервировать его.

 

Решение задачи:

import pickle

def intro():
    try:
        with open('dict_email.dat', 'rb') as file:
            dct = pickle.load(file)
    except:
        dct ={}
    return dct
def create(dct):
    name = input('Введите имя для добавления в справочник:')
    if name not in dct:
        email= input(':Введите электронынй адрес')
        dct[name] = email
        with open('dict_email.dat', 'wb') as file_in:
            pickle.dump(dct, file_in)
            print('Данные сохранены')
        return dct
    else:
        print('Такое имя уже есть в справочнике')
def edit(dct):
    name = input('Введите имя для изменения данных:')
    if name in dct:
        email = input('Введите новый электронный адрес:')
        dct[name] = email
        with open('dict_email.dat', 'wb') as file_in:
            pickle.dump(dct, file_in)
            print('Данные сохранены')
        return dct
    else:
        print('Такого имени нет в словаре')
def delete(dct):
    name = input('Введите имя для удаления данных:')
    if name in dct:
        del dct[name]
        with open('dict_email.dat', 'wb') as file_in:
            pickle.dump(dct, file_in)
            print('Данные сохранены')
        return dct
    else:
        print('Такого имени нет в словаре')
def show(dct):
    for i in dct:
        print(f'{i}:{dct[i]}')
def quit(dct):
    with open('dict_email.dat', 'wb') as file_in:
        pickle.dump(dct, file_in)
        print('Данные сохранены')#
def menu(dct):
    print('создать учетную запись - 1')
    print('изменить учетную запись - 2')
    print('удалить учетную запись - 3')
    print('посмотреть учетные записи - 4')
    print('выход - 5')
    CREATE = 1
    EDIT = 2
    DELETE = 3
    SHOW = 4
    QUIT = 5
    answer = int(input('выберите пункт меню:'))
    while answer != QUIT:
        while answer<CREATE or answer>QUIT:
            answer = int(input('выберите пункт меню:'))
        if answer ==CREATE:
            create(dct)
        elif answer ==EDIT:
            edit(dct)
        elif answer ==DELETE:
            delete(dct)
        elif answer ==SHOW:
            show(dct)
        answer = int(input('выберите пункт меню:'))
dct = intro()
menu(dct)