描述

实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

数据范围:字符串长度满足 3≤n≤50 ,保证运算符是一个char类型字符。

输入描述:

输入一行字符串,操作数1+运算符+操作数2 (其中合法的运算符包括:+、-、*、/)。

输出描述:

输出为一行。

如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。

如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。

如果操作数2等于0.0,则输出“Wrong!Division by zero!”。

示例1

输入:1.0+3.0

输出:1.0000+3.0000=4.0000

示例2

输入:1.0;4.0

输出:Invalid operation!

示例3

输入:44.0/0.0

输出:Wrong!Division by zero!

这是一位大神的算法,写的挺好,代码如下:

while 1 :
    try:
        a = input()
        for i in a :
            if i.isnumeric() or i =='.':
                pass
            else:
                x,y = a.split(i)
                res = eval(a)
                print(f'{eval(x):.4f}{i}{eval(y):.4f}={res:.4f}')
    except ZeroDivisionError as e:
        print("Wrong!Division by zero!")
    except SyntaxError as e:
        print("Invalid operation!")
    finally:
        break

从上到下分析部分看不明白的函数:

isnumeric()方法

描述

Python isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象。

注:定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可

具体解释链接如下:Python isnumeric()方法 | 菜鸟教程

Python eval() 函数

描述

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

 具体解释链接如下:Python isnumeric()方法 | 菜鸟教程

Python 异常处理

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。

描述

ZeroDivisionError

除(或取模)零 (所有数据类型)

SyntaxError

Python 语法错误

 具体解释链接如下:Python 异常处理 | 菜鸟教程