Как правильно использовать метод словаря update()?

Здравствуйте! Пишу консольный словарь с функцией добавления новых слов (newRecord()), используя метод update(). Но эта функция новые слова в словарь (words) не добавляет! Подскажите пожалуйста, в чём ошибка? Примеров применения метода update() в интернете много, но они слишком простые. Заранее благодарен. С уважением, Илья.
words={'world': 'мир',\
    'earth':'земля',\
    'you': 'ты',\
    'I':'я',\
    'We':'мы',\
    'probably':'вероятно',\
    'piece':'кусок',\
    'tired':'усталый',\
    'should':'должен',\
    'be able':'быть в состоянии',\
    'not enough':'не хватает',\
    'enough':'достаточно',\
    'should':'должен',\
    'represent':'представлять',\
    'sequence':'последовательность'}

def eng():
   eng_words=dict([[v, k] for k,v in words.items()])
   find_word=input('Enter word ' '')
   print(eng_words.get(find_word) or print('No such key'))

def rus():
    key=input('Введите слово ' '')
    print (words.get(key) or 'Искомое слово не найдено')

def newRecord():
    newkey=input('Ввести новое слово ' '')
    newvalue=input('Ввести перевод ' '')
    words.update({newkey: newvalue})
        
if __name__ == '__main__':
    start=input('Найти английский перевод русского слова? введите "y" или "n" ' '')
    if start == 'y':
        eng()
    elif start == 'n':
        rus()
    elif start == 'u':
        newRecord()
    else:
        print('До встречи')
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
sanya84
@sanya84
Фанатик Python 3
Всё работает.
class SimpleDataBase(dict):
	def __init__(self):
		super().__init__({"World": "Мир"})
	def __str__(self):
		data = "".join(f"{key}: {value}\n" for key, value in self.items())
		return f"{data}"
	
	def update_db(self, key, value):
		self.update({key: value})
		
def main():
    simple_data_base = SimpleDataBase()
    print(simple_data_base) # World: Мир
    simple_data_base.update_db("Red", "Красный")
    print(simple_data_base) # World: Мир
							              # Red: Красный

if __name__ == '__main__':
    main()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы