Я пишу программу, которая нуждается в пользовательском вводе для полиномиальной функции x. Я использую Tkinter и python 2.5.Парсер уравнения Python
У меня есть метод парсера, который до сих пор принимает введенное уравнение и разбивает его на термины, не отбрасывая знаки.
Я хочу взять каждый термин и разобрать его, чтобы получить кортеж (коэффициент, степень). Например, -2x^3 возвращает (-2,3). Затем я могу добавить их в массив и соответствующим образом манипулировать ими в программе.
Есть ли способ или стандартный модуль, который может это сделать?
Вот начало метода анализа.
def parse(a):
termnum=[]
terms=[]
hi=[]
num1=0
num=0
f=list(a)
count=0
negative=False
coef=0.0
deg=0.0
codeg=[]
for item in f:
if (item=='-' or item=='+') and count!=0:
termnum.append(count)
count+=1
for item in termnum:
num1=num
num=item
current=''
while num1<num:
current=current+f[num1]
num1+=1
terms.append(current)
num1=num
num=len(f)
current=''
while num1<num:
current=current+f[num1]
num1+=1
terms.append(current)
print terms
parse('-x^2+3x+2x^3-x')
Спасибо! P.S Я не хочу использовать внешние пакеты.
Связанные? http://stackoverflow.com/questions/594266/equation-parsing-in-python –