В Tkinter исправить функцию добавления элемента списка

Пишу небольшое игровое приложение, используя библиотеку Tkinter в языке Python. Среди прочего функционала есть такой: имеется область ввода, куда пользователь печатает текст, и тот должен пополнять собой имеющийся список текстовых элементов. Эти телодвижения можно рассматривать как своего рода "обучение" системы в ручном режиме.

При нажатии кнопки "включается" функция - обработчик этого события. Однако на данном этапе при попытке использовать функцию получаю ошибку памяти - в чем причина?

# функция "обучения" шара
def train_sphere(event):
    responses = ['Да', 'Нет', 'Скорее всего да', 'Скорее всего нет', 'Возможно', 'Имеются перспективы', 'Вопрос задан неверно']
    new_res = text_box_train.get('1.0', tk.END)
    while new_res:
        responses.append(new_res)
    time.sleep(2)
    text_box_answer.insert(tk.END, 'Новый вариант ответа добавлен в программу. Можешь добавить еще или сделать это потом' + '\n')

# привязываем команду "обучения" шара к кнопке
button_train.bind('<Button>', train_sphere)
    

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

Автор решения: Алексей Казанцев

Кажется, появился ответ. Видимо, цикл while здесь лишний. Без него приложение работает.

Только еще вопрос: а список в таком случае пополняется в рамках текущей сессии, и придет в исходное состояние после закрытия окна приложения, или же изменения носят глобальный характер, и сохранятся далее? Мне бы хотелось иметь обновление списка, который сохраняет в себе эти изменения вне зависимости, закрыл ли юсер окно приложения или нет

→ Ссылка