У меня возникла проблема, которая у меня была целая вечность, не найдя решения.Как вычислить математический термин, упакованный в строку (python)
Код это:
Df = range(100)
function = '3*x+4'
for i in Df:
listoffunction = list(function) #Will return ['3', '*', ...]
for obj in listoffunction:
if obj == 'x' :
obj = i
resultfori = ''
for part in listoffunction:
resultfori.join(part) #until here everything is fine.
#resultfori is the following: '3*i+4'
#with i the number of Df
Вот моя проблема: Как я могу вычислить этот термин? Я пробовал его с помощью команды exec
, но он всегда возвращает None
. Зачем? Я хочу это, например, если мне 3, чтобы вернуться 13. Можете ли вы мне помочь?
Большое спасибо!
Почему 12? '3 * 3 + 4' можно было бы разумно оценить до 13 или 21, но я не вижу 12 из этого. – zondo
Вы слышали о SymPy? И вы можете попробовать 'eval' вместо' exec' –
Связано: «' exec' игнорирует возвращаемое значение и всегда возвращает 'None' 'http://stackoverflow.com/a/29456463/2308683. –