python - 用户提供的函数的衍生物(从文件中读取)

时间:2018-04-25 18:58:56

标签: python

我已经编写了一些程序,给定一个数学表达式(在文件中作为字符串提供),将使用py_expression_eval评估给定x的f(x)

示例:

  

input.txt中

x^2 + 1
  

func.py

from py_expression_eval import Parser

parser = Parser()

file = open("input.txt")

func = file.readline().strip()

f_of_5 = parser.parse(func).evaluate({'x': 2})
  

输出

5

有什么方法可以得到像这样的字符串提供的函数的衍生物?

1 个答案:

答案 0 :(得分:1)

我最近一直在使用sympy。这是一个小型演示:

>>> from sympy import diff, Symbol
>>> from sympy.parsing.sympy_parser import parse_expr
>>>
>>> user_str = 'x**3 + x + 1'
>>> my_symbols = {'x': Symbol('x', real=True)}
>>> my_func = parse_expr(user_str, my_symbols)
>>> my_func
x**3 + x + 1
>>> 
>>> diff(my_func, my_symbols['x'])
3*x**2 + 1
>>> diff(my_func, *3*[my_symbols['x']])
6

当然,没有什么可以阻止你从文件中获取user_str (您必须使用**代替^进行取幂。)