我想从给定的元组中在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()
答案 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