请编写一个计算器程序,实现让用户输入2个数字的四则运算表达式 ,并显示计算结果(要求每种运算用一个函数实现)换一个方式写出来
时间: 2024-02-24 22:56:18 浏览: 121
下面是另一种实现方式,同样是一个计算器程序,使用了lambda表达式代替了之前的函数。
```python
# 定义四种运算,使用lambda表达式实现
add = lambda a, b: a + b
subtract = lambda a, b: a - b
multiply = lambda a, b: a * b
divide = lambda a, b: a / b if b != 0 else None
# 主程序
while True:
print("请输入两个数字和运算符号,以空格分隔(例如:2 + 3):")
expr = input().split()
if len(expr) != 3:
print("输入格式错误,请重新输入!")
continue
a = float(expr[0])
b = float(expr[2])
op = expr[1]
if op == '+':
result = add(a, b)
elif op == '-':
result = subtract(a, b)
elif op == '*':
result = multiply(a, b)
elif op == '/':
result = divide(a, b)
if result is None:
print("除数不能为0,请重新输入!")
continue
else:
print("运算符号错误,请重新输入!")
continue
print("计算结果为:", result)
choice = input("是否继续计算(Y/N)?")
if choice.lower() == 'n':
break
```
这个程序的逻辑和之前的程序基本一致,只是定义了四个lambda表达式来代替之前的函数。这样可以减少代码量,使程序更加简洁。
除此之外,程序中还对除法做了一个特殊处理。由于除数不能为0,因此我们在divide函数中加入了一个判断,如果除数为0,则返回None。在主程序中,如果divide函数返回了None,则说明输入的除数为0,我们就要求用户重新输入。
阅读全文