首页 > 试题广场 >

简单计算器

[编程题]简单计算器
  • 热度指数:44429 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

数据范围:字符串长度满足  ,保证运算符是一个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!
可以用py自带的函数eval()进行计算,只需要排除除以0的场景即可
def calculator(x):
    for symb in x:
        if symb in ['+', '-', '*', '/']:
            a, b = map(float, x.split(symb))
            if symb == '/' and b == 0:
                print('Wrong!Division by zero!')
            else:
                print('%.4f%s%.4f=%.4f' % (a, symb, b, eval(x)))
            break
    else:
        print('Invalid operation!')

发表于 2021-03-30 15:48:28 回复(0)
希望能进一步简化代码
while True:
    try:
        In = input()
        if '+' in In:
            s = In.split('+')
            num1,num2 = map(float,s)
            print("%.4f+%.4f=%.4f"%(num1,num2,num1+num2))
        elif '-' in In:
            s = In.split('-')
            num1,num2 = map(float,s)
            print("%.4f-%.4f=%.4f"%(num1,num2,num1-num2))
        elif '*' in In:
            s = In.split('*')
            num1,num2 = map(float,s)
            print("%.4f*%.4f=%.4f"%(num1,num2,num1*num2))
        elif '/' in In:
            s = In.split('/')
            num1,num2 = map(float,s)
            if num2 == 0:
                print("Wrong!Division by zero!")
            print("%.4f/%.4f=%.4f"%(num1,num2,num1/num2))
        else:
            print("Invalid operation!")
    except:
        break

发表于 2021-03-15 11:24:45 回复(0)
def cal(x):
    if '+' in x:
        a,b=map(float,x.split("+"))
        return("%.4f+%.4f=%.4f"%(a,b,a+b))
    elif '-' in x:
        a,b=map(float,x.split("-"))
        return("%.4f-%.4f=%.4f"%(a,b,a-b))
    elif '*' in x:
        a,b=map(float,x.split("*"))
        return("%.4f*%.4f=%.4f"%(a,b,a*b))
    elif '/' in x:
        a,b=map(float,x.split("/"))
        if b ==0:
            return("Wrong!Division by zero!")
        else:
            return("%.4f/%.4f=%.4f"%(a,b,a/b))
    else:
        return ("Invalid operation!")

while True:
    try:
        print(cal(input()))
    except:
        break


发表于 2020-11-08 22:41:45 回复(0)