题解 | #简单计算器# - eval:字符表达式运算;isnumeric()取出数字

简单计算器

http://www.nowcoder.com/practice/b8f770674ba7468bb0a0efcc2aa3a239

解法一

while True:
    try:
        expr = input()
        for i in expr:
            if i.isnumeric() or i == '.':
                pass
            else:
                x, y = expr.split(i)
                res = eval(expr)
                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

解法二

info = input()

if '+' in info:
    a,b = list(map(float,info.split('+')))
    print('%.4f+%.4f=%.4f'%(a,b,a+b))

elif '-' in info:
    a,b = list(map(float,info.split('-')))
    print('%.4f-%.4f=%.4f'%(a,b,a-b))
    
elif '*' in info:
    a,b = list(map(float,info.split('*')))
    print('%.4f*%.4f=%.4f'%(a,b,a*b))

elif '/' in info:
    a,b = list(map(float,info.split('/')))
    if b == 0:
        print('Wrong!Division by zero!')
    else:
        print('%.4f/%.4f=%.4f'%(a,b,a/b))
else:
    print('Invalid operation!')
    
    
全部评论

相关推荐

04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务