如何在 eval 中使用 sin(x) 和 cos(x) 函数

How to use sin(x) and cos(x) functions with eval

提问人:Kyryl 提问时间:10/21/2019 最后编辑:hpauljKyryl 更新时间:10/21/2019 访问量:1414

问:

我需要一个程序,它可以通过 matplotlib 使用我在控制台中编写的函数制作图表。 但它不适用于三角函数。 我已经写的代码是:

from numpy import linspace
import matplotlib.pyplot as plt
from math import sin, cos, tan

print("input a:")
a = float(input())
print("input b:")
b = float(input())
x = linspace(a, b, 1001)
y = eval(input())

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
python numpy matplotlib eval 三角函数

评论

3赞 ImportanceOfBeingErnest 10/21/2019
从 而不是 ,即 导入函数,以便它们可以接受向量输入。numpymathfrom numpy import linspace, sin, cos, tan
0赞 hpaulj 10/21/2019
不要只是说“它不起作用”!显示错误。其他人已经猜到您在使用 with a array 时遇到了问题。在这种情况下,错误消息将说明有关创建 Python 标量的信息。math.sinnumpyx

答:

0赞 ofeksr 10/21/2019 #1

我不完全明白你想做什么,但这可能会有所帮助:

from numpy import linspace, sin, cos, tan
import matplotlib.pyplot as plt

a = float(input('Enter x0: '))
b = float(input('Enter x1: '))
x = linspace(a, b, 1001)

for trig_func in [sin, cos]:
    y = trig_func(x)
    plt.title(f'{trig_func.__name__}(x)')
    plt.plot(x, y)
    plt.xlabel('x')
    plt.ylabel('y')
    plt.show()

请解释一下你是如何尝试实现 eval 函数的。