operation = ['/','*','+','-']
a =5
b= 2
for op in operation:
output = a+op+b
print output
这里我得到的输出是
5/2
5*2
5+2
5-2
但我想要
2.5
10
7
3
这样做的方法是什么?
答案 0 :(得分:1)
最简单的方法是使用将符号映射到执行操作的函数的字典,该函数可以在operator
模块中找到。
import operator
d = { '+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.div }
operation = d.keys()
a = 5
b = 2
for op in operation:
output = d[op](a, b)
print output
答案 1 :(得分:1)
使用operator
模块:
a, b = 5, 2
for op in (operator.div, operator.mul, operator.add, operator.sub):
print(op(a, b))
答案 2 :(得分:0)
为此,您可以使用eval
功能:
print eval(output)
注意:eval
评估字符串中的任何内容,即使它很危险。另外,如您事先了解运营商,可以使用operators模块:
import operators
operation = [operators.div, operators.mul, operators.add, operators.sub]
a = 5
b = 2
for op in operation:
output = op(a, b)
print output