bol_in 2022-01-10 21:30 采纳率: 64.6%
浏览 75
已结题

Python-五則運算


求該題程式碼
且需要使用stack

計算五則運算式的結果,包含加、減、乘、除、餘

輸入說明 :

輸入一個字串,其中包含運算元及運算子,為了方便讀取,所有的運算子及運算元均以空格區隔。
運算元皆為正整數
運算子則包含 + - * / %
運算時請注意”先乘除(餘)後加減”的計算規則

輸出說明 :

輸出結果。為了避免小數點誤差,所有的運算過程都不會產生小數點,可以放心使用整數進行運算

注意 :
此題為練習 stack 的應用,請勿使用 eval 函式來進行解題。
若未使用 stack 作答作業,將不予計分。

Sample Input:
3 + 5 - 7 - 4

Sample Output:
-3

Sample Input:
3 + 6 / 2 + 9 / 3 - 4

Sample Output:
5

Sample Input:
3 + 6 / 2 * 3 - 4 % 3

Sample Output:
11


  • 写回答

4条回答 默认 最新

  • soar3033 2022-01-11 08:27
    关注

    img

    
    class stack:
        def __init__(self):#初始化
            self.s=[]
        def pull(self,n):#入栈
            self.s.append(n)
        def out(self):#出栈
            if len(self.s)>0:
                t=self.s[-1]
                del(self.s[-1])
                return t
            else:
                return None
        def l(self):#返回栈内长度
            return len(self.s)
    
    s1=stack()#栈1,存储读入运算式
    s2=stack()#栈2,辅助运算
    s=input("").split(' ')#读取输入并入栈
    for i in range(len(s)):
        s1.pull(s[len(s)-i-1])
    while 1:#第一次轮栈操作
        t=s1.out()
        if t==r'/' or t==r'*' or t==r'%':
            t1=int(s1.out())
            t2=int(s2.out())
            if t==r'/':
                t3=t2/t1
            if t==r'*':
                t3=t2*t1
            if t==r'%':
                t3=t2%t1
            s2.pull(t3)
        else:
            s2.pull(t)
        if s1.l()==0:
            break
    while s2.l()>0:
        t=s2.out()
        s1.pull(t)
    while s1.l()>1:
        t1=int(s1.out())
        t2=s1.out()
        t3=int(s1.out())
        if t2==r'+':
            t=t3+t1
        if t2==r'-':
            t=t1-t3
        s1.pull(t)
    print(s1.out())
        
        
    
    
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?
  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计