用于循环算术

时间:2014-10-29 12:09:38

标签: python arithmetic-expressions

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

这样做的方法是什么?

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