Python 将字符转换为操作

标签 python

我正在为 projecteuler 问题编写一个简单的 Python 程序,它涉及在操作上生成搜索空间,例如:

8 = (4 * (1 + 3)) / 2
14 = 4 * (3 + 1 / 2)
19 = 4 * (2 + 3) − 1
36 = 3 * 4 * (2 + 1)

我将可能的操作存储在一个数组中:

op = ['+', '-', '*', '/']

我想知道 Python 中是否有任何方法可以将字符转换为操作,所以我可以简单地执行以下操作:

for operation in op:
    num1 foo(operation) num2

最佳答案

您可以使用 operator模块以获得您正在寻找的功能。 operator 模块具有“一组高效的函数,对应于 Python 的固有运算符”:

>>> import operator as op
>>> ops = {"+": op.add, "-": op.sub, "/": op.div, "*": op.mul}
>>> num1, num2 = 3, 6
>>> for name, fn in ops.iteritems():
...     print "{} {} {} = {}".format(num1, name, num2, fn(num1, num2))
... 
3 + 6 = 9
3 * 6 = 18
3 - 6 = -3
3 / 6 = 0

关于Python 将字符转换为操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20130007/

相关文章:

python - shell脚本在后台运行的进程没有输出

Python:在哪里可以找到异常导入

Python 附加函数作为点符号

python - 查找连通分量 Networkx

python - 错误的合并排序

python - 如何防止 Python 打印添加换行符或空格?

python - 如何在不剥离以零结尾的非零值的情况下剥离这些 0 值?

python - 访问相关对象的正确方法

python - 按可变数量的键对多维列表进行排序

python - 如何添加脚本任务来在 Bamboo 中运行 pytest