2015-03-17 1 views
1

Что я хочу - это программа, которая может определить значение x из уравнения, когда x еще не определено, т.е. не является переменная python. Только пример ниже, а не настоящая вещь.Можно ли найти значение x в python? т.е. попросить python решить уравнение, такое как 2x + 23 - 7x, когда x не является предопределенной переменной

sol = eval("input please type the equation: ") 
#i.e sol = 32x - 40 
print(sol) 
+1

Вы хотите решить уравнение или упростить выражение? – fjarri

+0

Уравнения имеют равные знаки. '2x + 23-7x' является выражением. – erip

ответ

2

Я не знаю ни встроенный способ сделать это, но Sympy библиотека построена именно для этого материала. Модуль Solvers в Sympy может использоваться для решения линейных уравнений. (Here) - это ссылка на его документы.

+0

Благодарим за помощь. Все еще учусь. –

1

Явный пример с использованием sympy

import sympy 
from sympy.abc import x 

print sympy.solve(32*x-40,"x") 
print sympy.solve(2*x+23-7*x,"x") 

дает в качестве вывода:

[5/4] 
[23/5] 

Обратите внимание, что существует отдельный вопрос синтаксического анализа пользовательского ввода. То есть, как мы берем строку «32x-40» и превращаем ее в выражение 32*x-40. Это может быть нетривиальная задача, зависящая от сложности уравнений, которые вы хотите моделировать. Если вы заинтересованы в этом, я бы посмотрел на pyparsing.