描述
实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数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 () or i =='.':
pass
else:
x,y = (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 异常处理 |