
Возникла одна проблемка - при некорректном завершении работы программы (закрытие сеанса командной строки Windows XP) после прохождения одного цикла не сохраняются данные в файл, при том, что цикл завершается командой сохранения.
В принципе данных в файле нет в момент выбора режима 1 или 2, хотя функция сохранения вызывается до перехода.
# ФУНКЦИЯ ЗАГРУЖАЮЩАЯ СЛОВАРЬ def Load_Dict(): # MOD Изменить загрузку списков, так чтобы при вводе нового не удалялись старые с помощью перевода строки в переменную locals()['name'] = "Nata" global f,English f=open('Dictionary.txt','rb') import pickle try: English = pickle.load(f) except EOFError: English=[] f.close # ФУНКЦИЯ СОХРАНЯЮЩАЯ СЛОВАРЬ def Save_Dict(): global f,English if len(English)!=0: f=open('Dictionary.txt','wb') import pickle pickle.dump(English, f) f.close while True: ModeChoice=input(""" Вы хотите заполнить словарь или начать обучение 1-заполнять 2-учить Любая другая комбинация завершит работу программы. """) if ModeChoice=='1\r': # РЕЖИМ ЗАПОЛНЕНИЯ Load_Dict() while True: Eng_word = input('Введите слово:\n') if English.count(Eng_word) != 0: print('Данное слово уже есть в словаре.',Eng_word,' = ', Russian[English.index(Eng_word)],'\n') Correct_word=input(""" Введите 1 - если хотите поменять значение слова; 2 - если хотите удалить слово; любая другая комбинация оставит слово в словаре без изменения """) if Correct_word=='1\r': N=English.index(Eng_word) del(English[N]) elif Correct_word=='2\r': N=English.index(Eng_word) del(English[N]) continue else: continue if Eng_word=='\r': break English.append(Eng_word) Save_Dict() print(English) #всп elif ModeChoice=='2\r': # # РЕЖИМ ОБУЧЕНИЯ print('режим обучения') else: print('Вы завершили работу с программой. До новых встреч!') break