Python 使用给定元组中的算术运算
我想在python中使用给定元组的算术运算。问题是,我知道我可以使用if语句,根据用户的输入,它会给出正确的答案。我不知道,但是有没有一种方法可以不用“如果”来做呢。正如您在下面看到的,我已经尝试了for,但是我在获取作为算术运算符的字符串时遇到了问题 代码: 您可以使用它,但要小心,因为如果处理不正确,它允许执行任意代码Python 使用给定元组中的算术运算,python,Python,我想在python中使用给定元组的算术运算。问题是,我知道我可以使用if语句,根据用户的输入,它会给出正确的答案。我不知道,但是有没有一种方法可以不用“如果”来做呢。正如您在下面看到的,我已经尝试了for,但是我在获取作为算术运算符的字符串时遇到了问题 代码: 您可以使用它,但要小心,因为如果处理不正确,它允许执行任意代码 if operator in __operators: rezultat = eval("x" + operator + "y") 您可以使用它,但要小心,因为如果
if operator in __operators:
rezultat = eval("x" + operator + "y")
您可以使用它,但要小心,因为如果处理不正确,它允许执行任意代码
if operator in __operators:
rezultat = eval("x" + operator + "y")
您可以使用
操作员
模块和指令
import operator
op = {
"+": operator.add
"-": operator.sub
"/": operator.truediv
"//": operator.floordiv
"*": operator.mul
"**": operator.pow
"%": operator.mod
}
print(op["+"](2, 3))
五,
您可以使用
操作员
模块和指令
import operator
op = {
"+": operator.add
"-": operator.sub
"/": operator.truediv
"//": operator.floordiv
"*": operator.mul
"**": operator.pow
"%": operator.mod
}
print(op["+"](2, 3))
五,
它与@Fukiyel的答案基本相同,但没有使用
操作符
模块。您可以实现希望计算器支持的所有操作,然后创建一个dict,输入运算符字符并为函数赋值:
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()
它与@Fukiyel的答案基本相同,但没有使用
操作符
模块。您可以实现希望计算器支持的所有操作,然后创建一个dict,输入运算符字符并为函数赋值:
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()
您遇到了问题,因为它不是运算符,只是字符串。另外,
if operator in u operators:
似乎完全没有意义,因为您在一个循环中for operator in u operators:
@jornsharpe感谢您的更正。有没有一种方法可以将其转换为python将其作为运算符来读取?您可能需要使用一个字典,将运算符字符串映射到运算符模块中的运算符函数。有两个选项。我建议进行研究,关于如何从字符串转换为运算符,存在一些问题。您遇到了问题,因为它不是运算符,只是字符串。另外,if operator in u operators:
似乎完全没有意义,因为您在一个循环中for operator in u operators:
@jornsharpe感谢您的更正。有没有一种方法可以将其转换为python将其作为运算符来读取?您可能需要使用一个字典,将运算符字符串映射到运算符模块中的运算符函数。有两个选项。我建议进行研究,关于如何从字符串转换为运算符,存在一些问题。