首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代一组运算符

迭代一组运算符
EN

Stack Overflow用户
提问于 2015-12-16 13:04:11
回答 3查看 1.4K关注 0票数 3

是否有可能/是否有一种方法可以迭代一系列操作符,如下面的示例所示?

代码语言:javascript
复制
a, b = 5, 7
for op in (+, -, *, /):
    print(a, str(op), b, a op b)

一个可能的用例是在某些抽象数据类型上测试各种操作符的实现,在这些数据类型中,这些操作符都是重载的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-16 13:13:39

您可以使用操作员模块。

代码语言:javascript
复制
for op in [('+', operator.add), ('-', operator.sub), ('*', operator.mul), ('/', operator.div)]:
    print("{} {} {} = {}".format(a, op[0], b, op[1](a, b)))
票数 7
EN

Stack Overflow用户

发布于 2015-12-16 13:10:11

您可以创建自己的操作,然后遍历它们。

代码语言:javascript
复制
def add(a, b):
    return a + b

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

def mult(a, b):
    return a * b

def div(a, b):
    return a / b
a, b = 5, 7

operations = {'+': add,'-': sub, '*':mult, '/': div}
for op in operations:
    print(a, op, b, operations[op](a, b))
票数 1
EN

Stack Overflow用户

发布于 2015-12-16 14:34:23

试试这个:

代码语言:javascript
复制
a,b=5,7
for op in ['+','-','*','/']:
    exec 'print a' + op + 'b'

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34312846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档