当我在其中使用局部变量时,为什么 eval 函数无法识别三角函数?

why eval function is not recognizing trigonometric when I am using local variable in it?

这是代码

equation1 = input("Please Enter an equation")
a = float(input("For a = "))
c = eval(equation1)

当我输入包含 cos、tan、sin 和 ln 函数的方程时;即:a*cos(a)

我收到这个错误:

    c = eval(equation1)
  File "<string>", line 1, in <module>
TypeError: cos() takes exactly one argument (0 given)

像 a*cos(90)、a**2+cos(90) 这样的输入工作正常,我的应用程序被构建为通用的。用户可以给任何值有什么办法可以解决吗?

首先需要from math import cos.

当我 运行 和 PyCharm 时,我得到了和你一样的异常。

然后我添加了print(equation1),发现当我输入cos(a)时,打印了cos()

一开始以为input函数有问题,但是一直找不到原因

然后我 运行 它直接从终端命令行使用 python xx.py 它工作正常。

所以可能是PyCharmwindow不认识括号里的内容