利用eval()函数实现简单的网络计算器功能
发布时间:2024-01-12 05:58:41
eval()函数是一个Python内置的函数,可以执行一个字符串表达式,并返回表达式的结果。当我们获取到用户的输入后,可以使用eval()函数来执行用户输入的表达式,并得到计算结果。
首先,我们先定义一个简单的网络计算器类Calculator,该类包含以下方法:
1. add():实现加法运算
2. subtract():实现减法运算
3. multiply():实现乘法运算
4. divide():实现除法运算
在每个方法中,我们使用eval()函数来执行用户输入的表达式,并返回结果。
下面是实现代码:
class Calculator:
def __init__(self):
pass
def add(self, num1, num2):
expression = f'{num1} + {num2}'
return eval(expression)
def subtract(self, num1, num2):
expression = f'{num1} - {num2}'
return eval(expression)
def multiply(self, num1, num2):
expression = f'{num1} * {num2}'
return eval(expression)
def divide(self, num1, num2):
expression = f'{num1} / {num2}'
return eval(expression)
接下来,我们可以创建一个Calculator对象,并使用它的方法进行计算。下面是一个使用例子:
calculator = Calculator()
print("网络计算器")
print("请输入两个数字和运算符,用空格分隔")
print("可用运算符:+ - * /")
input_str = input("输入:")
inputs = input_str.split()
if len(inputs) != 3:
print("输入格式错误")
else:
num1 = float(inputs[0])
operator = inputs[1]
num2 = float(inputs[2])
if operator == '+':
result = calculator.add(num1, num2)
elif operator == '-':
result = calculator.subtract(num1, num2)
elif operator == '*':
result = calculator.multiply(num1, num2)
elif operator == '/':
result = calculator.divide(num1, num2)
else:
print("不支持的运算符")
print("结果:", result)
运行以上代码,程序会提示用户输入两个数字和运算符,然后使用Calculator对象的相应方法进行计算,并输出结果。
例如,用户输入 "5 + 3",程序输出 "结果:8.0"。
需要注意的是,eval()函数可以执行任何有效的Python表达式,包括函数调用、条件语句等。因此,使用eval()函数时要确保输入的表达式是可信的,避免执行恶意代码。在实际应用中,需要对用户输入进行合法性验证和安全性处理。
