欢迎访问宙启技术站
智能推送

利用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()函数时要确保输入的表达式是可信的,避免执行恶意代码。在实际应用中,需要对用户输入进行合法性验证和安全性处理。