【问题标题】:Getting a user inputted equation [closed]获取用户输入的方程[关闭]
【发布时间】:2021-02-22 16:01:07
【问题描述】:

我目前正试图让用户为我的计算器输入他们自己的方程式。如果我只使用自己的方程式运行它,它会完美运行,但是我无法通过用户输入使其运行。有什么建议吗?谢谢 这部分代码有效

 def function(x):
     equation = 3*exp(x)
     return equation

当我更改为用户输入时,它不会

 def function(x):
     equation = input('Insert your equation)
    return equation

【问题讨论】:

标签: python math input calculator


【解决方案1】:

您可以使用eval() 函数。例如:

from math import exp


def function(x):
     equation = eval(user_input)
     return equation


user_input = "3*exp(x)"
x = 2
print(function(x))

但是,引用realpython,“eval() 被认为是不安全的,因为它允许您(或您的用户)动态执行任意 Python 代码。这被认为是不好的编程习惯,因为您正在阅读(或编写)代码) 不是您要执行的代码。”

【讨论】:

  • 好了!在回答中提出不好的做法时,重要的是要包含警告
  • 我补充说,一般来说,eval 被认为是一种不好的做法。但在这种特殊情况下,它适合 OP 的需求。我打算在编辑中这样做。 :)
  • 我注意到你添加了它。这就是为什么我将反对票改为赞成票。
  • 谢谢!海量帮助@kenticent
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多