Babay82
А так?
Та уже лучше, но код совсем не стал ни элегантнее ни лаконичнее. начнем:
1. копипаста, строка
character[0][1] += value
character[choice][1] -= value
встречается два раза, подумайте как от этого избавиться.
2. постоянно обращение к элементам списка занимает ресурсы, пока у вас учебная программа на 5 строк это ничего, а представте что у вас цикл на миллион итераций, это способно сущетсвенно уменьшить быстродействие.
3. Вы сначала совешаете действие :
character[choice][1] += value
character[0][1] -= value
а потом проверяете некие условия, и делаете откат
character[0][1] += value
character[choice][1] -= value
Опять же на учебном примере на 5 строк это никак не скажется, а представте что у вас таже транзакционная БД, которая обрабатывает несколько тысяч запросов в секунду, а вы в нее сначала записали, потом вас не устроило, вы еще раз записали. ВО первых база будет расти как на дрожжах,во вторых доп наргузка на канал/диск, во третих в случае проблем со связью\сбоев питания, в базе могут оказаться некоректные значения.
Логично сначала все проверить, а потом если все ОК вносить уже изменения. Да и математики тогда выходит меньше.