【问题标题】:how to turn strings into operations in python?如何将字符串转换为python中的操作?
【发布时间】:2022-07-21 21:21:09
【问题描述】:

我最近试图找到具有给定点的多项式,并偶然发现了我不能像普通数学运算那样使用字符串的问题:”3 + 1” + “2 + 1”,因为它会返回”3 + 12 + 1”。我试图只遍历字符串,但遇到了下一个困难,我不能只取消字符串化操作,如”+””-“。 有谁知道如何解决这个问题?

【问题讨论】:

标签: python string polynomials operation


【解决方案1】:

如果此计算将纯粹存在于代码中,并且用户没有直接访问权限,那么您可以使用eval()

例子:

print(eval("3 + 4"))

输出:

7

eval() 的意义在于执行存储为字符串的 Python 代码。如果用户正在输入要在eval() 语句中使用的值,则绝对应该进行一些错误检查以确保用户正在输入数字。如果您的程序打算发布用于商业用途,例如,您将冒着用户输入 Python 代码的风险,而这些代码可以使用 eval() 执行。

【讨论】:

    【解决方案2】:

    eval() 是邪恶的

    它可以执行任何命令,包括不安全或恶意字符串。

    使用 Pyparsing(更多信息 here 和另一个问题和示例 here)。另一种选择是 ast 模块。如果你想要更多的功能,ast 可以打开更多的命令,但是 pyparsing 应该很好用。

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多