Решил попробовать себя на конкретной задаче словарь англо-русский. Взял за основу вот эту публикацию https://www.unix-lab.org/posts/pydict/ - пример второй. Создал 3 файла, которые сохранил в пайтон директории:
1)База данных words_db
# words_db.py #!/usr/bin/env python # -*- coding:utf-8 -*- import shelve db = shelve.open('db_file') db['earth']='земля' db['word']='слово' db['catch']='ловить' db['find']='искать' db.close()
# dump_words_db.py #!/usr/bin/env python # -*- coding:utf-8 -*- import shelve db=shelve.open('db_file') print('Yes')
# start_programm.py #!/usr/bin/env python # -*- coding:utf-8 -*- import shelve db=shelve.open('db_file') def eng(): eng_words=dict([[v, k] for k,v in db.items()]) find_word=input('Enter word ' '') print(eng_words.get(find_word) or print('No such key')) def rus(): key=input('Введите слово ' '') print (db.get(key) or 'Искомое слово не найдено') def newRecord(): newkey=input('Ввести новое слово ' '') newvalue=input('Ввести перевод ' '') db[newkey] = newvalue db.update() db.close() if __name__ == '__main__': start=input('Найти английский перевод русского слова? введите "y" или "n" ' '') if start == 'y': eng() elif start == 'n': rus() elif start == 'u': newRecord() else: print('До встречи')
Короче, запускаю 3 файл f5 и все что я вижу
=================== RESTART: E:\Python3.81\start_programm.py ===================
Найти английский перевод русского слова? введите “y” или “n” n
Введите слово ‘земля’
Искомое слово не найдено
>>>
=================== RESTART: E:\Python3.81\start_programm.py ===================
Найти английский перевод русского слова? введите “y” или “n” n
Введите слово ‘earth’
Искомое слово не найдено
>>>
=================== RESTART: E:\Python3.81\start_programm.py ===================
Найти английский перевод русского слова? введите “y” или “n” u
Ввести новое слово ‘love’
Ввести перевод ‘любовь’
>>>
по идее это новое слово должно записаться в базу данных words_db, но его там нету я проверял(((
=================== RESTART: E:\Python3.81\start_programm.py ===================
Найти английский перевод русского слова? введите “y” или “n” y
Enter word ‘earth’
No such key
None
>>>
Пробовал разные варианты - ответ No such key
None
Подскажите что я делаю не так?