题解 | 四则运算

import sys
s=sys.stdin.readline().split()#限制输入读取一行数据,按任意空分割,,去末尾的/n
assert len(s)==1,'只能输入一个字符串'
a=s[0]
assert 1<=len(a)<=1000,'输入字符数量需在1至1000范围'
lena=len(a)-1
leni=0
for i in a:
    leni+=1
    if i not in '1234567890+-*/{}[]()':
        print('需保证表达式字符串由0−9的数字、‘+’ 、减 ‘-’‘*’除‘/’ 、小括号 ‘(’,‘)’,中括‘[’,‘]’,大括号‘{’,‘}’组成,且运算符之间没有空格')
        break
    elif leni==lena:
        # a = a.replace("{f", "(").replace("}", ")").replace("[", "(").replace("]", ")")
        a=a.translate(a.maketrans('{[]}','(())'))
        a=int(eval(a))
        if -1000<=a<=1000:
            print(a) #截尾取整
        else:
            # print(f'结果超预期范围-1000至1000了,为:{a}') #超出范围按理不该输出,但题库答案需要直接输出
            print('%.0f'%a)
            # print(f'{a:.0f}')

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务