如何在python中使函数用户的返回值能够输入

时间:2017-03-03 15:24:21

标签: python math

我目前正在研究一个整体计算器作为项目的一部分。它完美地工作,除了我不知道如何使用户定义的功能集成。这就是我定义函数的方式:

def func(x):
    return math.sin(x**2)+x*2+2

你们有没有想过让用户输入功能的方法?提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

很难推荐这个,但请查看eval

import math

def func(maths_expression, x):
    return eval(maths_expression)


> print func("math.sin(x**2)+x*2+2", 17)
35.973478979714244

答案 1 :(得分:2)

查尔斯先生的回答很好。作为替代方案,您可能会对此感兴趣,它以类似的方式使用sympy模块。

from sympy import *

def func(str, x_value):
    expr = sympify(str)
    var('x')
    return N(expr.subs(x,x_value))

str = 'sin(x**2)+x*2+2'

print (func(str, 5))

用户不必使用这种方法指示sin函数来自数学模块。