2013-11-18 5 views
1

Я пытаюсь сделать калькулятор в Python 3 (просто чтобы узнать). Я хочу иметь возможность оценить (как пример) «5 * (2 + 1)^2» из ввода(). Я хотел бы иметь возможность определить, закрыты ли скобки или содержать другой набор скобок. Я также должен быть в состоянии изолировать информацию, чтобы я мог оценить ее в правильном порядке.Разбор скобки

Я понимаю, что это может быть значительный кусок кода, поэтому, если бы вы могли указать мне в правильном направлении, я был бы очень благодарен. Я ищу ссылки на документацию, имена функций и любые подсказки, которые вы могли бы мне помочь.

ответ

1

Калькулятор на основе стекол - это то, что вы ищете!

http://en.wikipedia.org/wiki/Reverse_Polish_notation

+0

Очень круто! Я все равно должен был бы преобразовать его в это обозначение, которое я понятия не имею, как сделать ха-ха. Есть идеи? Редактирование: я нашел вики на шотландском аллее, поэтому я собираюсь возиться с этим. –

1

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

Here является хорошей отправной точкой на эту тему, базовой реализацией стека и дополнительной информацией о вашем предмете. Начиная оттуда, вы должны легко найти свой путь, иначе дайте мне комментарий, и я постараюсь вам помочь.

Смежные вопросы