Можете оценить код на python?
Даже не так хорошо зная python:
- код трудно читать: слишком много повторяющихся мест (принцип DRY - Don't Repeat Yourself хотябы примени, разбей на функции)
- дикое число if! да, в python нет switch-case, но есть куча примеров как это лучше сделать
- а еще есть такая классная штука как паттерн state-machine, который позволяет работать с такими вот сценариями
Я бы создал через класс