Помогите решить ошибку в коде. Задача из A byte of python
Вот какую ошибку выдаёт терминал: Возникло исключение: EOFError Ran out of input
Вот сам код:
#!/usr/bin/env python
# Filename: ad.py
import pickle
class Address:
my_dict = dict()
def __init__(self, key, value):
self.key = key
self.value = value
Address.my_dict = dict()
with open('booking.txt', 'w') as file:
file.write(key)
file.write(value)
file.close()
def __setitem__(self, key, value):
self.key = input('Введите имя: ')
self.value = input('Введите адрес: ')
Address.my_dict[self.key] = self.value
if self.key in Address.my_dict:
print('\nАдрес:', Address.my_dict)
def __delitem__(self, key):
print('\nУдаление контакта')
self.key = input('Введите имя для удаления: ')
del Address.my_dict[self.key]
if self.key in Address.my_dict:
print('Удаление контакта НЕ вышло')
else:
print('Удаление контакта прошло успешно')
def find(self):
self.key = input('Введите имя для поиска: ')
if self.key in Address.my_dict:
print('Адрес: ', Address.my_dict[self.key])
else:
print('Такого имени не найдено.')
def change(self):
self.key = input('Введите имя контакта, который нужно изменить: ')
del Address.my_dict[self.key]
self.fname = input('Введите новое имя: ')
self.semail = input('Введите новый адрес: ')
Address.my_dict[self.fname] = self.semail
if self.fname in Address.my_dict:
print('\nАдрес:', Address.my_dict)
def find(self):
self.key = input('Введите имя контакта для поиска: ')
if self.key in Address.my_dict:
print('Адрес: ', Address.my_dict[self.key])
if self.key is not Address.my_dict:
print('Такого контакта не найдено.')
def loading():
file = open('Book.data', 'rb')
Address.my_dict = pickle.load(file) # Чтение
file.close()
loading = staticmethod(loading)
def store():
file = open('Book.data', 'wb')
pickle.dump(Address.my_dict, file) # Запись
file.close()
store = staticmethod(store)
r = Address('', '')
Address.loading()
running = True
while running:
search = int(input('n\nСписок возможностей:\n (1)Просмотр всех контактов\n (2)Поиск контакта по имени\n (3)Добавить контакт\n (4)Удалить контакт'))
if search == 1:
r.__setitem__('', '')
if len(Address.my_dict) == 100:
print('Адресная книга переполнена, удалите 1 из контактов')
r.__delitem__('')
if search == 2:
r.__delitem__('')
Address.store()
if search == 3:
r.change()
Address.store()
if search == 4:
r.find()
if search == 5:
Address.store()
running = False
if len(Address.my_dict) == 0:
running = False