Я пытаюсь создать программу калькулятора, в которой пользователь может ввести уравнение и получить ответ. Мне не нужен полный код для этого, мне просто нужна помощь с определенной частью.Python-stuck пытается создать калькулятор «свободной руки»
Подход, который я пытаюсь сделать, состоит в том, чтобы пользователь вводил уравнение в виде строки (raw_input
), а затем я пытаюсь преобразовать числа из их ввода в целые числа. После этого мне нужно знать, как я могу заставить операнды делать то, что я хочу, чтобы они делали, в зависимости от того, какой операнд использует пользователь и где он находится в уравнении.
Какие методы я могу использовать для выполнения этой задачи?
Вот в основном то, что я прямо сейчас:
equation_number = raw_input("\nEnter your equation now: ")
[int(d) for d in equation_number if d.isdigit()]
Эти линии предназначены только для сбора ввода и пытается преобразовать число в целых числах. К сожалению, похоже, что он не работает очень хорошо, и .isdigit будет работать только для положительных чисел.
Edit- aong152 упоминается рекурсивный синтаксический анализ, который я посмотрел на, и это, кажется, имеют желаемые результаты:
Однако, я не понимаю код, что автор этого поста использует, может ли кто-нибудь познакомить меня с основами рекурсивного синтаксического анализа?
Первый совет: покажите, как вы ** в настоящее время пытаетесь ** получить эти данные и преобразовать их. Если вас еще нет, посмотрите, как получить вход пользователя и преобразовать строки в целые числа. – Jesse
Под «уравнением» вы имеете в виду выражение для вычисления типа '6/2' или действительно уравнение для решения для x, например' 2 * x = 6'? –