gpt4 book ai didi

python - 来自字符串的数学运算

转载 作者:IT老高 更新时间:2023-10-28 22:01:46 24 4
gpt4 key购买 nike

假设我有一个标准的 Python 字符串(例如从 raw_input() 获得的字符串),为了简单起见,可能是 "2 + 2"

我想将此字符串转换为 Python 中的标准数学运算,这样 "2 + 2" 将返回 4

有没有一种简单的方法可以做到这一点,或者我是否必须拆分空格并手动解析每个数字/符号,然后根据我的发现进行数学运算?

我想要正则表达式吗?

最佳答案

警告:这种方式并不安全,但很容易使用。明智地使用它。

使用 eval 函数。

print eval('2 + 4')

输出:

6

您甚至可以使用变量或常规 python 代码。

a = 5
print eval('a + 4')

输出:

9

你也可以获取返回值:

d = eval('4 + 5')
print d

输出:

9

或者调用函数:

def add(a, b):
return a + b

def subtract(a, b):
return a - b

a = 20
b = 10
print eval('add(a, b)')
print eval('subtract(a, b)')

输出:

30
10

如果你想编写一个解析器,也许你可以构建一个 python 代码生成器,如果这样更容易的话,然后使用 eval 来运行代码。使用 eval,您可以执行任何 Python 评估。

为什么 eval 不安全?

因为您可以在 eval 中添加任何内容,例如如果输入参数是:

os.system(‘rm -rf /’)

它将删除系统上的所有文件(至少在 Linux/Unix 上)。因此,只有在您信任输入时才使用 eval。

关于python - 来自字符串的数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com