Если значение связано с конкретным пользователем, используй простой файл в профиле пользователя.
Если значение связано с конкретной установкой, и у тебя точно есть права на запись в каталог твоей программы (например, она портативная), используй простой файл в каталоге программы.
Если планируешь запускать программу только на Windows, можно использовать реестр.
Формат файла зависит от того, насколько вероятно расширения набора хранимых данных, и какие данные планируешь хранить.
Одно значение (любое) - обычный файл, либо как текст, либо как бинарные данные.
Примитивные типы (строки, числа, логика) - cfg файл, модуль configparser.
То же плюс списки и словари - json файл, модуль json.
Древовидная иерархия, смесь примитивных типов данных с небольшими порциями бинарных - модуль pickle.
Опять же, если строго под виндой - реестр прекрасно справляется с бинарными данными и древовидными иерархиями.
А вот если у тебя иерархия объектов данных не дерево, а граф (особенно если есть отношения многие ко многим) - без БД никуда.
Так что по описанным тобой условиям - простой файл в каталоге программы подойдёт.