[英]Calculation program with arithmetic operators
定义 function (x,y,ops) 其中 x 和 y 是要输入到 function 中的 2 个数字,而 ops 是一个变量,指示使用哪个算术运算符 (+, -, / *)。
我被如何定义操作所困扰。
这就是我到目前为止所拥有的,我被困住了:(
x=eval(input("x= "))
y=eval(input("y= "))
def func(x, y, ops):
return x+y if ops==1
elif return x-y is ops==1
print(func(x, y, ops))
您可以让用户只输入符号。 您可以将其作为字符串进行比较。
def func(x, y, ops):
if ops == '+':
return x+y
elif ops == '-':
return x-y
elif ops == '*':
return x*y
elif ops == '/':
return x/y
else:
raise ValueError("Unknown op " + ops)
x = float(input('x= '))
y = float(input('y= '))
op = input('op [+,-,*,/]: ')
print(func(x, y, op))
您可以创建一个函数字典,这为您添加或更改操作提供了相当多的灵活性。
oper_dict = {
"*": lambda x,y:x*y,
"+": lambda x,y:x+y,
"-": lambda x,y:x-y,
"/": lambda x,y:x/y if y !=0 else 'div by zero'
}
x = float(input("x= "))
y = float(input("y= "))
oper = input("operation (*, +, -, /): ")
answer = oper_dict.get(oper, lambda x,y: 'unkown operation')(x, y)
这为深入挖掘 Python 出色的标准库提供了一个很好的机会。 在这种情况下,运算符库可用于执行所需的计算器操作。 使用字典,您可以将操作符号用作键,将操作本身用作值:
from operator import mul, add, sub, truediv
op_mapper = {"*": mul, "+": add, "-": sub, "/": truediv}
x = float(input("x= "))
y = float(input("y= "))
op = input("operator [*, +, -, /]: ")
print(op_mapper[op](x, y))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.