繁体   English   中英

带有算术运算符的计算程序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM