TypeError при разборе строки в уравнении Симпи - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь проанализировать строку в выражении sympy с помощью метода sympy sympy.parsing.sympy_parser.parse_expr.

Это проблемная строка: '0*1(A*(n-1)**2+B*(n-1)+C)+1*1(A*(n-2)**2+B*(n-2)+C)+0.5*n**2+0.5*n-(A*n**2+B*n+C)'

Inнапротив, у меня есть другая строка уравнения, которая анализируется без проблем:

'a_1 * (-0.500000000000000)**0+a_2 * (0.500000000000000)** - 1'

При синтаксическом анализе проблемной строки появляется следующее сообщение:

eq = parse_expr(eq) File "###\Python37-32\lib\site-packages\sympy\parsing\sympy_parser.py", line 965, in parse_expr return eval_expr(code, local_dict, global_dict) File "###\Python\Python37-32\lib\site-packages\sympy\parsing\sympy_parser.py", line 878, in eval_expr code, global_dict, local_dict) # take local objects in preference File "<string>", line 1, in <module> TypeError: 'One' object is not callable

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

1 Ответ

0 голосов
/ 03 января 2019

Прошу прощения за публикацию здесь, я просто пропустил '*' между переменными и выражениями в скобках.Например, этот бит был проблематичным: 0*1(A*(n-1)**2+B*(n-1)+C) После изменения его на 0*1*(A*(n-1)**2+B*(n-1)+C) Анализ успешно завершен.

...