使用给定元组的算术运算

时间:2019-03-17 16:28:41

标签: python

我想从给定的元组中在python中使用算术运算。我知道我可以使用if语句,并且根据用户输入,它将给出正确的答案。我不知道,但是有没有ifs的方法。正如您在下面看到的那样,我尝试了for,但是在将字符串作为算术运算符时遇到了麻烦。

代码:

__operators = ('+', '-', '/', '//', '*', '**', '%')

def calculator():
    x = input()
    operator = input()
    y = input()
    op = operator

    # print(str(x) + operator + str(y))

    rezultat = 0

    for operator in __operators:
        if operator in __operators:
            operator = op     


    rezultat = x + op + y       
    print(rezultat)
    return rezultat


calculator()

3 个答案:

答案 0 :(得分:4)

您可以使用if operator in __operators: rezultat = eval("x" + operator + "y") 模块和operator

dict
  

5

答案 1 :(得分:1)

它与 @Fukiyel 的答案基本相同,但不使用operator模块。实施您希望计算器支持的所有操作,然后使用键操作符和值来创建字典,并对其进行赋值:

def add(n1,n2):
    return n1 + n2

def subtract(n1,n2):
    return n1 - n2

def division(n1,n2):
    if n2 != 0:
        return n1 / n2

def integerDivision(n1,n2):
    if n2 != 0:
        return n1 // n2

def multiply(n1,n2):
    return n1 * n2

def power(n1,n2):
    return n1 ** n2

def modulo(n1,n2):
    return n1 % n2

__operators = {'+' : add, '-' : subtract, '/' : division, '//' : integerDivision, '*' : multiply, '**' : power, '%' : modulo}

def calculator():
    x = int(input())
    operator = input()
    y = int(input())

    for op in __operators:
        if operator == op:
            result = __operators[operator](x,y)
            print(result)
            return result 

calculator()

答案 2 :(得分:0)

您可以使用eval,但要小心,因为如果处理不当,它会允许任意代码执行。

a.cleanUp