Условия задачи:
Имена и адреса электронной почты. Напишите программу, которая сохраняет имена и адреса электронной почты в словаре в виде пар "ключ : значение". Программа должна вывести меню, которое позволяет пользователю отыскать адрес электронной почты человека, добавить новое имя и адрес электронной почты, изменить существующий адрес электронной почты и удалить существующие имя и адрес электронной почты. Программа должна законсервировать словарь и сохранить его в файле при выходе пользователя из программы. При каждом запуске программы она должна извлекать словарь из файла
и расконсервировать его.
Решение задачи:
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)