Помогите решить ошибку в коде. Задача из 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

Ответы (0 шт):