Потому что по умолчанию конфигурация читается, как файл в ansi-кодировке. Если файл содержит символы отличные от латинских, то раскодировать их не получится. Решить можно так:
with open(main_config_file, encoding='utf-8') as fh:
settings.readfp(fh)
# Весь остальной код, использующий settings
if bet != 0 or 1 or 2:
Ну конечно дословный перевод с русского на питон будет работать неправильно. Это условие интерпретируется как if (bet != 0) or (1) or (2):
В питоне целые числа истинны, если они не нулевые. Т.е. получаем if (bet != 0) or (1 != 0) or (2 != 0):
Как следствие if (bet != 0) or True or True:
А как известно, X or True всегда даст True, независимо от значения X.
Так что всё условие всегда даст True.
Правильно или так: if (bet != 0) and (bet != 1) and (bet != 2):
или так if bet not in (0, 1, 2):
По поводу зацикливания - заверни кусок программы, отвечающий за ввод, в цикл while.
Правильно выше написали, используй ChromeDriverManager или еще лучше undetected-chromedriver (https://github.com/ultrafunkamsterdam/undetected-c...), в обоих случаях нужный драйвер подкачивается автоматически, а во втором случае он еще и пропатченный специально для таких случаев...
1. JSON нельзя отредактировать где-то посередине. Сложность такой операции O(n)
2. По JSON нельзя эффективно делать выборку, например, получить юзера с id=123 — сложность O(n)
3. Удаление тоже самое — перезаписывать весь файл
4. Нет транзакций
5. Нет целостности данных
6. Миллион других причин, все из которых перечислены в "фичах" любой БД