根据循环或用户输入更改两个数字的运算符 - Python

Change operator on two numbers according to a loop or user input - Python

有没有办法根据变量更改用于两个整数的算术运算符?例如,如果我想编写一个计算器,而不是为每个运算符创建一个新函数,我可以创建一个函数;类似于:

ops = {0 : +, 1 : -, 2 : *, 3 : /}
for i in range(4):
    print(12ops[i]4)

或:

ops = {0 : +, 1 : -, 2 : *, 3 : /}
i = int(input("What operator?"))
print(12ops[i]4)

示例输出:

16
8
48
3
What operator? 2
8
>>>

然而,这显然是行不通的,因为这不是正确的方法(如果有的话),而且只会 return 字典中的语法错误。 使用它,我会创建一些东西,比如一个简单的计算器。
我觉得这是我和很多其他人问过自己的问题python,这对以后的其他编程项目非常有用。

有办法吗?

您可以使用函数,它们首先是 class Python 的公民,因此您几乎可以将它们放在任何地方:

import operator
ops = {0: operator.add, 1: operator.sub, 2: operator.mul, 3: operator.div}

for i in range(4):
    print(ops[i](12, 4))

输出:

16
8
48
3

在这里你可以如何做到这一点。

ops = {0 : "+", 1 : "-", 2 : "*", 3 : "/"}
for i in range(4):
    print(eval("12"+ops[i]+"4"))
i = int(input("What operator?"))
print(eval("12"+ops[i]+"4"))